Proguard.cfg no funciona en aplicaciones exportadas usando LIBRARY
Tengo dos versiones de la misma aplicación usando idéntico proguard.cfg
con la siguiente sección destinada a silenciar todos Log.x () salida LogCat:
-assumenosideeffects class android.util.Log { public static *** v(...); public static *** i(...); public static *** d(...); public static *** w(...); public static *** e(...); }
La primera versión es monolítica (es decir, no hace referencia a ningún proyecto de biblioteca en absoluto) y proguard.cfg
funciona allí exactamente como se esperaba.
- Proguard con google-play-services
- Android BadParcelableException sólo con apk firmado
- Gradle no puede encontrar el símbolo de la clase interna después de proguard
- Problemas proguard en android studio
- Escribir una excepción al paquete en la aplicación firmada
La segunda versión está utilizando dos proyectos de la Biblioteca (uno es mío y el otro es LVL de Google). El mismo proguard.cfg
se coloca en el proyecto de aplicación y en mi proyecto de biblioteca. Sin embargo, en esta segunda versión, proguard.cfg
parece simplemente no tener ningún efecto!
¿Qué podría explicar esto?
- Qué optimización es segura que todavía permite -assumenosideeffects remociones
- Configuración adecuada de Proguard para mantener la clase interna estática
- Android - Proguard con httpcore y httpmime con Android Studio y Gradle
- Configuración de Android ProGuard para Facebook
- Proguard no obstruye las aplicaciones de Android
- Proguard Parámetro del tipo que falta
- Proguard con Android y el cliente de la API de Google
- ¿Cómo verificar los datos de POST se envía desde la aplicación de Android con la firma SHA1 correcta?
¿Has añadido proguard.config=proguard.cfg
a build.properties
en tu proyecto de aplicación? Debería ver los mensajes de consola y los archivos de salida de ProGuard. El pase de optimización debe al menos mencionar algunos "Número de instrucciones eliminadas".
Las clases de aplicación y las clases de biblioteca se compilan en bin / classes. A continuación, se tratan exactamente iguales: se combinan en bin / original.jar y obfuscated a bin / obfuscated.jar, utilizando proguard.cfg. La adición de más clases realmente no puede tener un efecto en la eliminación del código de registro.
Utilice este conmutador para diagnosticar: -¿Por qué?
Para desactivar el inicio de sesión en mi aplicación, utilicé esto:
-assumenosideeffects public class android.util.Log { <methods>; }
Si eso no soluciona su problema, entonces hay un par de otras cosas para probar:
- Lanzar una excepción en una parte del código proguard debe ser ofuscante. Si el stacktrace no está ofuscado, entonces proguard podría no estar funcionando correctamente.
- Tu aplicación no puede tener activada la depuración cuando haces una compilación proguard. Asegúrese de que en su manifiesto, el elemento
<application>
se establezca enandroid:debuggable="false"
- Error interno (classFileParser.cpp: 3174), pid = 7288, tid = 7476
- Android Development Fin de la vida de una aplicación