Aplicación Proguard android que utiliza soporte lib
Tengo aplicación Android que utiliza la lib de soporte. Fue obfuscated con Proguard, e itcrashes en la actividad casera en código:
` @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.home, menu); //ith crashes here return true; } `
lanzamiento:
- Biblioteca de Compatiblity de Android Proguard
- ¿Está usando Proguard con Android vale la pena el esfuerzo?
- Cómo utilizar retrace.bat en android
- Proguard problemas con los archivos jar, ¿cómo encontrar el frasco que falta?
- Proguard config para facebook sdk. Eliminar todo excepto el análisis
java.lang.NoSuchMethodError: android.util.Xml.asAttributeSet at android.support.v7.internal.view.SupportMenuInflater.inflate(Unknown Source) at com.sample.mobile.HomeActivity.onCreateOptionsMenu(Unknown Source)
He habilitado proGuard usando:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
En project.properties
Mi archivo de configuración se ve así:
-libraryjars libs -libraryjars C:\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar -keep class android.support.v4.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep class android.support.v7.app.** { *; } -keep interface android.support.v7.app.** { *; } -keep class android.support.v7.internal.** { *; } -keep interface android.support.v7.internal.** { *; } -keep class android.util.Xml..** { *; } -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.preference.Preference -keep public class com.android.vending.billing.IInAppBillingService -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.content.Context { public void *(android.view.View); public void *(android.view.MenuItem); }
He añadido muchas cosas, porque yo estaba buscando la solución para este problema.
- Crashlytics ProGuard duplicate zip entry
- Problema Proguard para la biblioteca mupdf
- Error de android.support.v8.renderscript en ProGuard
- ¿Cómo configurar Proguard en Android Studio?
- NineOldAndroids ObjectAnimators no funcionan con ProGuard y firman apk
- Mover a construir herramientas 1.3.0 rompió nuestra construcción con proguard habilitado
- El significado de { *; } En ProGuard
- ProGuard con Android: java.lang.NoSuchMethodError: android.util.Xml.asAttributeSet
No estoy seguro de cómo sucedió. Pero agregar la siguiente línea a las reglas proguard resolver el problema.
-keep class org.xmlpull.v1. ** {*; }
- Cambiar el icono de búsqueda en la barra de acción
- ¿Cómo obtener un valor de dimensión que sea una referencia a un atributo?