Android Gradle build resultante apk contiene clases ofuscadas y no ofuscadas
Al construir mi proyecto androide, he añadido lo siguiente al archivo build.gradle para habilitar proguard:
buildTypes { release { runProguard true proguardFile 'proguard-project.txt' proguardFile '../common/proguard-shared.txt' proguardFile getDefaultProguardFile('proguard-android.txt') } }
Todo se genera bien, pero cuando desmontar el archivo dex resultante, resulta que tanto los archivos ofuscados y no ofuscados están allí.
- Eliminar actividad de apk a través de Proguard
- Biblioteca de Compatiblity de Android Proguard
- Cómo ocultar clases públicas en la biblioteca Jar usando ProGuard (o cualquier otra forma)?
- Gradle no puede encontrar el símbolo de la clase interna después de proguard
- Configuración de ProGuard con proyectos de la biblioteca de Android
Por ejemplo, tanto common.Base64 y common.a existen, el primero es no obfuscated, mientras que el segundo es.
No está seguro de su relación, pero el proyecto en sí tiene una estructura no típica. Esto es un resultado de nosotros tener una base de código androide grande con más de 40 aplicaciones android. Estamos tratando de crear un flujo de generación basado en gradle lado a lado de la creación basada en eclipse existente.
Si todo va bien, tenemos la intención de cambiar la estructura de archivos para ser más gradle nativo, y empezar a usar los sabores y construir-tipos de tener-lejos con muchas de las bibliotecas que creamos para dar cabida a la falta de sabores y tal.
El proyecto E se basa en una cadena de bibliotecas como esta:
E -> D -> C -> B -> A
P. Ej., El proyecto E depende de la biblioteca D que depende de la biblioteca C … hasta llegar a A.
- Configuración de ProGuard para AndroidPlot
- Proguard falla con la versión 25.1.6 de las herramientas de Android
- NullPointerException al usar el archivo XML en res / raw con Proguard
- Exportación de un proyecto de Android durante el uso de proguard en adt & sdk 20
- Cómo deobfuscate jar archivo utilizando mapping.txt generado por Proguard?
- ¿Cómo obfuscate el proyecto con Dagger 2.0 usando Proguard?
- Android Proguard - ¿es la mejor práctica mantener todas las librerías de terceros?
- Error de ProGuard no puede encontrar superclase o interfaz org.apache.http.entity
Después de mirar esto, descubrí que esto es un problema si primero construyes sin proguard habilitado y luego lo construyes con él habilitado. Esto se debe al modo incremental de dex.
Puedes hacer una compilación limpia después de habilitar proguard y solucionará esto.
Edit: He indicado anteriormente que puede desactivar el modo incremental en dex, pero resulta que en realidad no ayuda!