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 … "

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); } 

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.

  • Kotlin, Proguard y lambdas
  • El significado de { *; } En ProGuard
  • Cómo activar proguard en mi proyecto?
  • ¿Cómo evitar la ingeniería inversa de un archivo APK?
  • Configuración de Proguard para Android Support v4 22.2.0
  • La aplicación se bloquea cuando se selecciona Modo de liberación pero en modo de depuración funciona perfectamente
  • ¿Cómo usar el nuevo Android 2.0 Shrinker y Resource Shrinker juntos?
  • Habilitar proguard sólo para eliminar el código no utilizado
  • No se puede firmar la versión APK -: app: shrinkReleaseMultiDexComponents FALLED
  • Android Developer Tools 16 y problemas con -weepclasseswithmembers in proguard
  • Proguard.ParseException: Esperando el nombre del miembro de la clase antes de '@' en Android Eclipse ADT
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.