studio ofuscar minifyenabled false codigo android debugging obfuscation proguard

minifyenabled - ofuscar codigo android studio



¿Cómo se puede depurar con aplicaciones ofuscadas(con ProGuard) en Android? (3)

Cuando obtuve algo como esto

ERROR/AndroidRuntime(18677): Caused by: java.lang.NullPointerException ERROR/AndroidRuntime(18677): at com.companyname.a.a.a(Unknown Source)

¿Cómo puedo saber dónde está el problema y solucionar este problema? Solo obtuve la salida de mapeo de ProGuard y no conozco el número de línea. Gracias.


Agregue las siguientes líneas a su configuración de proguard.

-renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable

Ahora sus seguimientos de pila incluirán números de línea y, mediante la herramienta de rastreo que se envía con proguard (incluida en el SDK de Android), puede depurar de forma normal.

Tenga en cuenta que incluso si no usó estas dos opciones de configuración, el rastreo aún puede generar información útil siempre que tenga el archivo de asignaciones, aunque no del todo sin ambigüedades.

Nota: el archivo con las asignaciones es producido por la opción de configuración proguard:

-printmapping outputfile.txt

En el archivo de hormiga enviado con el SDK de Android, se establece en mapping.txt.

Buena suerte.


Para hacer uso de cualquier rastro de pila de su cuenta de Android Market, puede usar su archivo de mapa, producido con la opción -printmapping en la configuración de ProGuard, con ReTrace (herramienta complementaria ProGuard) para decodificar el seguimiento de la pila. También puede decodificar a mano usando el contenido del archivo de mapa, pero esto es tedioso.

En el Manual de ProGuard en ejemplos, hay una sección sobre la producción de trazas de pila ofuscadas útiles, incluida la forma de mantener los números de línea.

Desafortunadamente, si no configuró el ProGuard para mantener los números de línea, entonces solo podrá identificar el método que arroja la excepción.


Pegue su rastro de pila en stack_trace.txt

Ejecute el siguiente comando: java -jar retrace.jar classes-processed.map stack_trace.txt

retrace.jar está en sdk / tools / proguard / lib / retrace.jar classes-processed.map es el archivo de salida generado por proguard cuando usted hizo ofuscación