Error al exportar la aplicación después de actualizar a Proguard 4.8
Acabo de actualizar mi SDK de Android, ADT y Proguard a la última y mejor.
Mi proyecto compila compilaciones y funciona bien en modo de depuración, pero tan pronto como intento exportar un APK firmado de la misma, recibo un error del Asistente de exportación sin ningún mensaje de error en la consola Eclipse. *
- La ofuscación de Proguard está rompiendo simplexml
- Proguard warning biblioteca clase android.webkit.WebView depende de la clase del programa android.webkit.WebViewClien
- Configuración de Android ProGuard para Facebook
- Android ProGuard No se puede acceder a jarfile .. \ lib \ proguard.jar en IntelliJ 11.1
- Cómo configurar Proguard para mantener los métodos estáticos con diferentes tiempos de retorno
Si intento ver el registro de errores a través de Window->Show View->Error Log
todo lo que veo es más de lo mismo:
No tengo ni idea de qué hacer porque ni Eclipse ni Proguard darían ninguna pista sobre cuál podría ser el problema.
Mi proyecto exportado bien hasta esta actualización reciente. No hay advertencias de compilación. No hay advertencias de pelusa!
Estoy utilizando el archivo de configuración estándar para Android en ${sdk.dir}\tools\proguard\proguard-android.txt
:
-dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose -dontoptimize -dontpreverify -keepattributes *Annotation* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgent -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.v4.app.Fragment -keep public class * extends android.app.Fragment -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class **.R$* { public static <fields>; } -dontwarn android.support.**
Y proguard.cfg de mi proyecto sólo contiene:
-assumenosideeffects class android.util.Log { public static *** v(...); public static *** i(...); public static *** d(...); public static *** w(...); public static *** e(...); }
¿Alguien ha visto este problema antes? ¿Algúna idea de cómo arreglar esto?
¿Algún progreso? Pude exportar un APK firmado por primera vez desde que actualizé al hacer esto:
- Corrí CCleaner para limpiar todos los archivos temporales y cachés en el sistema Windows,
- Luego reinicié Windows.
Pero para mi consternación, la próxima vez que traté de exportar el APK firmado de nuevo, recibí el mismo Failed to export application
sin mensajes de la consola! ¡De nuevo!
Ahora está claro para mí que las herramientas de desarrollo de Android se han vuelto inestables. Realmente no puedo ejecutar CCleaner y reiniciar Windows cada vez que quiero exportar un APK firmado. Y no me importa de quién es la culpa: Android SDK? ADT plugin? Proguard?
¿Qué hago ahora?
¿Un poco más de progreso? Intenté exportar un APK firmado con Proguard apagado. Se exportó bien, pero cuando lo inicie, se bloquea inmediatamente por no poder encontrar la clase de actividad de la aplicación ( ClassNotFoundException
). ¡Esto es raro! Funciona bien en modo de depuración y si la clase de actividad de la aplicación no estuviera allí, no debería haber compilado! ¿Que esta pasando? ¿Están rotas las últimas y mejores herramientas para Android?
He intentado jugar con la pestaña de Order and Export
como se describe en esta solución (y esta también), pero no ayudó.
¿Qué hago ahora?
- Quitar la biblioteca externa de clases obfuscated.jar (en Android Studio / Gradle)
- Proguard de Android: cómo mantener controladores onClick sólo referenciados desde diseños XML
- ¿Cómo configurar Proguard usando Gradle?
- Al usar Proguard, ¿necesita una configuración separada para cada biblioteca referenciada?
- Proguard Printmapping no funciona en Android Studio 2.0.0 (y 2.1.0)
- Proguard no ignora las bibliotecas referenciadas
- Proguard devuelto con el código de error 1. Consulte consola
- ¿Cómo configurar PROGUARD para el procesador Jackson JSON?
Estás ejecutando Windows XP, así que no estoy seguro de poder ayudar (estoy ejecutando Windows 7 de 64 bits), pero su comentario a @ Boe-Dev acerca de "17 referencias no resueltas a las clases" me recordó mi reciente experiencia con un Actualizar similar a la suya:
Lo resolví colocando la siguiente línea en proguard.cfg
:
-dontwarn com.bta.myapp.MyAppActivity.R**
No sé si su problema es el mismo que el mío, pero puede valer la pena intentarlo.
EDIT: Notar que incluso cuando su apagado Proguard usted está teniendo problemas, puedo sugerir lo siguiente?
- Quitar las bibliotecas de la ruta de compilación estándar de Java: Haga clic con el botón derecho del ratón en el nombre del proyecto> Propiedades> Java Build Path> ficha Bibliotecas> eliminar todo excepto "Android XX" y las "dependencias de Android"
- Cambie el nombre de la carpeta de librerías de "lib" a "libs". Al hacerlo, todas las bibliotecas de la carpeta "libs" se encuentran en el complemento de Android y se añaden al elemento "Android Dependencies" del proyecto
- Limpie el proyecto (siempre necesario dado lo impredecible que son las herramientas de desarrollo de Android)
Háganos saber cómo funcionó.
¿Qué hay acerca de su registro de errores. Ventana-> Mostrar vista-> Registro de errores. Es independiente de la salida de consola, código de error 1 tienden a aparecer aquí.
Intenta reinstalar tu complemento ADT en eclipse
Aquí estaba la llave que trabajó para mí
http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14
Supuestamente fijado en ADT-15, la solución es
1) Para cada elemento X_src, haga clic con el botón derecho en él y, a continuación, Construir ruta> Eliminar de la ruta de construcción.
2) Se abrirá una ventana emergente. Asegúrese de que "También desvincular la carpeta del proyecto" está marcada y luego aceptarlo.
Todavía puede depurar el código de la biblioteca, pero necesita administrar sus puntos de interrupción en esos proyectos y luego pasar a través del código en las fichas del archivo de clase.
- Cuenta de método jar / dex Android en ventanas
- Determinar el cambio de fragmentos mientras se prueba el espresso