Exportación de un proyecto de Android durante el uso de proguard en adt & sdk 20

He actualizado a la nueva adt & sdk 20 , y estoy teniendo problemas con la nueva forma Proguard se utiliza en Eclipse. No soy un pro con Proguard en absoluto, pero siempre lo he usado y funcionó muy fácilmente. Simplemente edité el archivo "project.properties" y añadí allí "proguard.config = proguard.cfg", y funcionó.

Lamentablemente, algunos cambios se hicieron que no puedo encontrar ninguna información de cómo trabajar con ellos. El sitio web oficial que habla de Proguard (en el sitio web de Android) todavía habla de la forma más antigua.

Escribieron en "project.properties" para descomentar la siguiente línea:

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

Esto no funcionó, me da estos errores al intentar exportar:

 Proguard returned with error code 1. See console java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options? at proguard.shrink.Shrinker.execute(Shrinker.java:159) at proguard.ProGuard.shrink(ProGuard.java:275) at proguard.ProGuard.execute(ProGuard.java:101) at proguard.ProGuard.main(ProGuard.java:492) 

Puede alguien ayudarme con esto? Nunca tuve que cambiar el archivo proguard.cfg antes y todo era bastante automático. Era muy raro que tuviera que hacer tal cosa.

También agregaron un archivo "proguard-project.txt" que probablemente reemplaza a proguard.cfg y "extends" del archivo de la carpeta sdk, así que me pregunto: ¿estará bien hacer alguna referencia al archivo en el proyecto (y poner En el archivo el contenido del archivo "principal")? Si es así, ¿cómo hago eso?

Si funcionaba bien antes y no has aprendido Proguard, solo cambia esta línea:

  proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

A esta línea:

  proguard.config=proguard.cfg 

Entonces usted tendrá su antigua configuración de Proguard de nuevo, yo recomendaría la actualización, sin embargo, sólo debería funcionar a menos que el uso de algunos frascos de terceros? Estos son los que está diciendo que falta y debe usar el indicador -keep para impedir que Proguard los elimine cuando obstruya.

Ok, la solución es que por alguna razón, tuve la ubicación incorrecta establecida para la variable sdk.dir en eclipse.

Así que lo que hice fue

  1. Ir a las preferencias de eclipse
  2. Buscado por variables
  3. Y fue a las variables java-> build path-> classpath,
  4. Y agregó la variable "sdk.dir" con el valor del directorio de android sdk.

Cree un archivo proguard.cfg en su carpeta raíz del proyecto y actualice su adt a 21 y utilice proguard v4.8 o 4.9 y no olvide ejecutar Android Lint antes de exportar APK

La ruta del archivo de configuración predeterminado se ha cambiado a

$ {Sdk.dir} /tools/proguard/proguard-android-optimize.txt

Usando SDK 22, mi solución fue copiar proguard-project.txt desde $ {sdk.dir} / tools / proguard / en mi área de trabajo de proyecto.

Si observa project.properties, verá que hace referencia a ${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt .

Encontró $ {sdk.dir} bien, pero estaba buscando proguard-project.txt en el directorio del proyecto.

  • Android apk Modo de depuración funciona bien, pero el modo de liberación da demasiadas advertencias
  • Android - ¿Cómo comprobar la ofuscación Proguard ha funcionado?
  • Cómo mantener a mi clase de ofuscar por proguard
  • ¿Es posible Proguard un módulo de biblioteca de Android, pero no el módulo de aplicación?
  • ¿Cómo puedo decir a proguard para asumir un paquete no se utiliza?
  • NoClassDefFoundError: android.support.design.internal.NavigationMenu en Android 4.2.2 (wiko)
  • Android: Errores de clase duplicados en proguard
  • Eclipse exportado apk
  • Multidex de Android no compatible con proguard
  • Generación de un archivo de configuración de Pro Guard con Android Studio
  • Desbloqueo de APK de Android con java.lang.AssertionError: imposible en java.lang.Enum
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.