2012-02-10 21 views
11

Quiero compilar con Proguard mi proyecto de Android con algunos proyectos de biblioteca de Android adicionales. De hecho, la mayoría del código y los recursos se encuentran en estas bibliotecas.Android Library Project: ofuscar y mantener los recursos

He añadido la línea "proguard.config = proguard.cfg" en project.properties del proyecto principal, configuré cfg-file (-libraryjars .. \ libs). A continuación, haga clic con el botón derecho, Herramientas de Android -> Exportar paquete de aplicaciones firmado. ADT compiló el proyecto para su lanzamiento pero la aplicación se bloqueó en el primer lanzamiento: cuando leí del registro, fue por un puntero de recursos incorrecto.

He decompilados proyecto y descubrí algo muy extraño: si Declaro recursos en la biblioteca, entonces de recursos de puntero en él se convierte en 0.

problema no desapareció cuando agrego línea "proguard.config = proguard.cfg "en project.properties de todo mi proyecto de biblioteca Android.

¿Alguna solución?

Editar: mirar fragmento de proguard.cfg:

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations ! 

-printusage unused.txt 
-optimizationpasses 2 
-printmapping mapping.txt 
# -overloadaggressively 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 

-libraryjars ..\libs 
+0

¿Por qué necesita la configuración proguard en los proyectos de la biblioteca? Es la configuración proguard en el proyecto de destino que se utiliza. – pandre

+0

No importa si agrego o elimino "proguard.config" en proyectos de biblioteca. Ya lo he dicho solo por información completa. – QuickNick

+0

Publica tu archivo de configuración proguard. – 500865

Respuesta

1

¿Seguro que tiene las últimas herramientas? Como Eclipse Indigo, ADT v16.0.1 y Proguard 4.7? También tuve problemas antes de actualizar a las últimas herramientas.

+0

Uso las actualizaciones más recientes de ADT (verifico regularmente si hay actualizaciones) y las herramientas de Android. Eclipse tiene la versión "Helios". – QuickNick

+0

Porque hoy el complemento ADT me permite compilar la biblioteca con ofuscación, decidí cerrar la pregunta y regalarle la respuesta aceptada. – QuickNick

1

¿Cómo se incluyen/hacen referencia a sus proyectos de biblioteca de Android? Si lo leo correctamente, ¿los agrega como un frasco? Si es así, realmente podría tener problemas con los recursos proporcionados por los proyectos de la biblioteca.

Si estoy en lo cierto, intente lo siguiente:

utilizar la configuración de un proyecto y agregar sus proyectos de biblioteca allí. No use algunos frascos exportados para eso. La forma en que funciona un Android Library Project es muy diferente de lo que funciona una biblioteca java normal.

+0

Incluyo la referencia para ALP como está describiendo: Configuración del proyecto -> Agregar biblioteca. Sin jarras exportadas. – QuickNick