Uso de ProGuard con Android.
Estoy intentando usar ProGuard con Android. He encontrado varios scrips de ProGuard para usar, siendo el siguiente un ejemplo (he encontrado varios otros que son iguales o muy similares). Sin embargo, cuando intento ejecutar ProGuard usando este script, obtengo el error:
"Esperando tipo java antes"; ' en la línea 23 del expediente … "
- No se puede generar APK firmado en Android Studio, porque proguard-rules.txt está ausente
- Excepción al dexar archivos: Se ha interrumpido la traducción
- Proguard warning biblioteca clase android.webkit.WebView depende de la clase del programa android.webkit.WebViewClien
- Cómo proteger la llamada a webservice en Android
- Error de compilación referenciando archivo build.xml y proguard: "null returned: 1"
Soy completamente nuevo en ProGuard. ¿Puede alguien explicar lo que está mal aquí
Gracias.
-injars bin(!.svn/**) -outjars obfuscated -libraryjars C:\android-sdk_r04-windows\android-sdk-windows\platforms\android-1.6\android.jar -libraryjars C:\GoogleAnalyticsAndroid_0.7\libGoogleAnalytics.jar -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -printmapping proguard.map -keepattributes SourceFile,LineNumberTable -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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native ; } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public (android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }
- IntelliJ / Android Studio - cómo activar proguard para obfuscate código - paso a paso?
- La sincronización de Gradle falla con el complemento Dexguard (Android Studio)
- Proguard: Excluir proyecto de biblioteca en Android
- Cómo detener ProGuard de eliminar la interfaz Serializable de una clase
- TransformClassesAndResourcesWithProguardForRelease FALLA
- Proguard dando "Warning: org.msgpack. *"
- Android: ¿Cuáles son las configuraciones recomendadas para Proguard?
- Nota: android.support.v4.text.ICUCompatIcs: no se puede encontrar la clase referenciada dinámicamente libcore.icu.ICU
El problema está aquí:
native ;
Intente cambiarlo a:
native <methods>;
Como he comentado anteriormente, parece que el problema se deriva del hecho de que el blog de la que obtuve los guiones parecía estar "comiendo" cualquier cosa con corchetes angulares. Decidí que sería bueno publicar el código corregido, en caso de que alguien más lo esté buscando. El código corregido es el siguiente:
-injars bin(!.svn/**) -outjars obfuscated -libraryjars C:\android-sdk\platforms\android-4\android.jar -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -printmapping proguard.map -keepattributes SourceFile,LineNumberTable -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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }
De mirar el mensaje de error que su compilador dio, parece que el compilador prácticamente le está diciendo cuál es el problema.
"Expecting java type before ';' in line 23 of file ..."
He perdido la cuenta, pero parece que esta línea es la línea 23:
native ;
No sé sobre usted, pero eso no parece Java válido en absoluto.
- Crear navegador-marcador de la aplicación
- AlertDialog no se crea aunque invoco onCreateDialog en Android