Howto in eclipse depura el archivo apk ofuscado por Proguard
Recibí un bloqueo en mi aplicación después de usar Proguard y firmar y exportar con una nueva clave.
El mismo código funciona en el modo de depuración normal de eclipse.
He leído en todas partes que debo usar el mapping.txt para encontrar el código que falló. Pero cómo hacerlo, tengo google esto por 2 horas ahora y no hay respuesta está funcionando.
- Configuración de ProGuard para Guava con obfuscación y optimización
- Dile a Proguard que mantenga la anotación en los métodos
- Eliminar las clases no utilizadas con proguard para Android
- NoClassDefFoundError: android.support.design.internal.NavigationMenu en Android 4.2.2 (wiko)
- Firmado apk obtener se estrelló en proguard habilitar
Ahora estoy firmando el archivo apk con el debug.keystore y usando la contraseña por defecto "android".
Alguien dice que debería android: debuggable = "false" en mi etiqueta de aplicación para que Proguard ofusque mi sesión de depuración en eclipse.
¿Es esto correcto?
Cualquier ayuda sería grate
En la página Proguard de desarrolladores de Android no encuentro una forma de hacerlo
"Cuando su código ofuscado genera una traza de pila, los nombres de los métodos se ofuscan, lo que hace que la depuración haya"
¿Qué "traza de pila" y desde dónde?
En la página Proguard Manual no puedo encontrar una explicación
- Configuración de las reglas proguard en android, sólo puede cifrar el código?
- detener proguard dañar anotaciones en el proyecto de la biblioteca android
- ProGuard con Android: java.lang.NoSuchMethodError: android.util.Xml.asAttributeSet
- Cómo mantener todos los métodos en una clase con ProGuard
- Proguard con código de error de devolución Unity3d 1
- Exportar aplicación de Android con ProGuard da error de ParseException
- Phonegap 2.4 Configuración de Proguard para Android
- ¿Qué es proguard.txt en la libs / carpeta de un proyecto de Android?
No dentro de Eclipse.
Fuera de Eclipse, utilice la función Retrace
dentro de ProGuard. También necesitará el stacktrace y mapping.txt descargados que se encuentran en el directorio proguard
su proyecto para invertir el stacktrace ofuscado. Recuerde guardar una copia de mapping.txt
(preferiblemente fuera del área de trabajo del proyecto) cada vez que implemente una nueva versión de su aplicación de Android.
Puede desvirtuar el seguimiento de la pila con más facilidad utilizando la GUI de Proguard. Lo encontrará con su SDK de Android.
sdk\tools\proguard\bin\proguardgui.bat
- Ejecute la GUI arriba de la ruta de arriba.
- Haga clic en el botón "ReTrace" en la parte inferior del panel de la izquierda.
- Agregue la ruta de acceso a su archivo de asignación (mapping.txt) en el cuadro de texto "Archivo de asignación".
- Pegue una copia de su rastreo de pila en el cuadro de texto "Rastreo de pila ofuscada".
- Haga clic en "ReTrace" en la parte inferior derecha.
- Depuración feliz!
En este aspecto, la documentación de proguard en el sitio de desarrolladores de android muestra cómo descodificar una traza de pila, pero no especifica cómo obtener la traza de pila.
http://developer.android.com/guide/developing/tools/proguard.html (consulte la sección Descodificación de trazas de pila ofuscadas)
He intentado usar un volcado logcat como sigue: –
E/AndroidRuntime(14584): FATAL EXCEPTION: main E/AndroidRuntime(14584): java.lang.ExceptionInInitializerError E/AndroidRuntime(14584): at com.aabadg.<init>(Unknown Source) E/AndroidRuntime(14584): at com.aabaqa(Unknown Source) E/AndroidRuntime(14584): at com.aabaya(Unknown Source) E/AndroidRuntime(14584): at com.aabaya(Unknown Source) E/AndroidRuntime(14584): at com.aabaaq.get(Unknown Source) E/AndroidRuntime(14584): at com.aabcp.a(Unknown Source) E/AndroidRuntime(14584): at com.aabai.c(Unknown Source) E/AndroidRuntime(14584): at com.aabbg.a(Unknown Source) E/AndroidRuntime(14584): at com.aaaoa(Unknown Source) E/AndroidRuntime(14584): at com.aabee.a(Unknown Source) E/AndroidRuntime(14584): at com.aabag.a(Unknown Source) E/AndroidRuntime(14584): at com.aabcb.a(Unknown Source)
Lamentablemente esto no funciona, pero funciona si elimino el E / AndroidRuntime (14584) desde el principio de cada línea que funciona:
FATAL EXCEPTION: main java.lang.ExceptionInInitializerError at com.aabadg.<init>(Unknown Source) at com.aabaqa(Unknown Source) at com.aabaya(Unknown Source) at com.aabaya(Unknown Source) at com.aabaaq.get(Unknown Source) at com.aabcp.a(Unknown Source) at com.aabai.c(Unknown Source) at com.aabbg.a(Unknown Source) at com.aaaoa(Unknown Source) at com.aabee.a(Unknown Source) at com.aabag.a(Unknown Source) at com.aabcb.a(Unknown Source)
Por lo tanto, como la documentación indica que necesita un archivo de seguimiento de la pila, y parece que no hay ninguna indicación de obtener un archivo de seguimiento de pila válido desde el dispositivo.
La única manera que he visto hacer esto es proporcionando un manejador de excepciones personalizado y escribiendo el seguimiento de la pila en el sdcard.
Pasos para obfuscated apk:
-
Descargue el último proguard del sitio proguard . La última versión actual es proguard4.7
-
Reemplace la carpeta "bin" y "lib" de
C:\Program Files (x86)\Android\android-sdk\tools\proguard
con las últimas carpetas proguard descargadas. -
Compruebe la ubicación del SDK en eclipse para ver si hay espacios en blanco en ella y para ello vaya a Ventana> Preferencias> Android. Si hay espacio en blanco, reemplácelo por:
c:\Progra~2\android\android-sdk (for windows 64-bit) c:\Progra~1\android\android-sdk (for windows 32-bit)
-
Compruebe que el archivo proguard.cfg está en la carpeta raíz de su proyecto y añada
proguard.config=proguard.cfg
en el archivo project.properties del proyecto android. -
Ahora exporta tu proyecto para obfuscatear apk.
- En Android, ¿cómo puedo configurar la altura y el ancho de un elemento ListView?
- No se pudo construir: el archivo dx.jar no se cargó desde la carpeta SDK de mi eclipse