2012-04-15 6 views
6

que estoy tratando de ocultar mi aplicación Android sin embargo yo estoy recibiendo el siguiente error:Proguard - referencias no resueltas a miembros de la clase de programa

[2012-04-15 19:55:51 - TmtAndroid] Proguard returned with error code 1. See console 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ClassPathElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ClassPathElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ClassPathElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'java.lang.String[] list()' in class proguard.ant.ClassPathElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassPathElement: can't find referenced method 'void setLocation(java.io.File)' in class proguard.ant.ClassPathElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ClassSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ClassSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ClassSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.ConfigurationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.ConfigurationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ConfigurationTask: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ConfigurationTask 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.FilterElement: can't find referenced method 'boolean isReference()' in class proguard.ant.FilterElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.FilterElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.FilterElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.KeepSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.KeepSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.KeepSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.KeepSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.MemberSpecificationElement: can't find referenced method 'boolean isReference()' in class proguard.ant.MemberSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.MemberSpecificationElement: can't find referenced method 'java.lang.Object getCheckedRef(java.lang.Class,java.lang.String)' in class proguard.ant.MemberSpecificationElement 
[2012-04-15 19:55:51 - TmtAndroid] Warning: proguard.ant.ProGuardTask: can't find referenced method 'org.apache.tools.ant.Project getProject()' in class proguard.ant.ProGuardTask 
[2012-04-15 19:55:51 - TmtAndroid]  You should check if you need to specify additional program jars. 
[2012-04-15 19:55:51 - TmtAndroid] Warning: there were 17 unresolved references to program class members. 
[2012-04-15 19:55:51 - TmtAndroid]   Your input classes appear to be inconsistent. 
[2012-04-15 19:55:51 - TmtAndroid]   You may need to recompile them and try again. 
[2012-04-15 19:55:51 - TmtAndroid]   Alternatively, you may have to specify the option 
[2012-04-15 19:55:51 - TmtAndroid]   '-dontskipnonpubliclibraryclassmembers'. 
[2012-04-15 19:55:51 - TmtAndroid] java.io.IOException: Please correct the above warnings first. 
[2012-04-15 19:55:51 - TmtAndroid] at proguard.Initializer.execute(Initializer.java:321) 
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.initialize(ProGuard.java:211) 
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.execute(ProGuard.java:86) 
[2012-04-15 19:55:51 - TmtAndroid] at proguard.ProGuard.main(ProGuard.java:492) 

Cuando agrego

-dontwarn proguard.ant.** 

a proguard.cfg , apk se exporta, pero después de la instalación en el teléfono, se bloquea, por lo que no es la solución en este caso ...

¿Qué debo hacer para resolver estas advertencias? Es mi primera interacción con Proguard ...

Gracias

Respuesta

1

Mi enfoque general cuando se trabaja con Proguard es comenzar con una muy pequeña .pro archivo con todo encendido y luego comenzar a apagar varias opciones de ofuscación/optimización/contracción hasta que el jar resultante se ejecute correctamente.

Así que sugeriría correr por el Proguard examples page y probar las diversas opciones -keep y dontXXX que sugieren.

Además, ¿su aplicación (o el marco Android) hacen uso de métodos nativos , serialización, reflexión , métodos de devolución de llamada, anotaciones, etc ...? La documentación de ejemplos proporciona configuraciones que debe pasar al Proguard para asegurarse de que la manipulación del código de bytes de Proguard no rompa estas funciones.

Por ejemplo, no estoy muy familiarizado con la plataforma Android, pero creo que utiliza algún tipo de marco XML que le dice cómo cargar/usar las clases Java que defina. Si ese es el caso, y tiene Proguard ofusque los nombres de la clase o del paquete, el framework XML ya no podrá encontrar esas clases.

+1

Las únicas clases de referencia XML que no se compilan en los recursos son las actividades y los servicios a los que se hace referencia en AndroidManifest.xml, y si usa las configuraciones proporcionadas por Android para Proguard, las marca automáticamente con "-manejar. .. " –

Cuestiones relacionadas