Uso de Proguard para obfuscar la aplicación Android con las bibliotecas de Dropbox.com

Acabo de crear una aplicación para Android que requiere las bibliotecas API de Dropbox.com. Ahora estoy tratando de construir la aplicación en el modo 'Release' y me gustaría ejecutar proguard en el código con el fin de ofuscarlo. Sin embargo, cada vez que intento ejecutar Proguard, obtengo el siguiente error:

Proguard returned with error code 1. See console Warning: com.dropbox.client2.DropboxAPI: can't find referenced class org.json.simple.JSONArray Warning: com.dropbox.client2.DropboxAPI: can't find referenced class org.json.simple.JSONArray Warning: com.dropbox.client2.DropboxAPI$Entry: can't find referenced class org.json.simple.JSONArray Warning: com.dropbox.client2.DropboxAPI$Entry: can't find referenced class org.json.simple.JSONArray Warning: com.dropbox.client2.RESTUtility: can't find referenced class org.json.simple.parser.JSONParser Warning: com.dropbox.client2.RESTUtility: can't find referenced class org.json.simple.parser.JSONParser Warning: com.dropbox.client2.RESTUtility: can't find referenced class org.json.simple.parser.JSONParser Warning: com.dropbox.client2.RESTUtility: can't find referenced class org.json.simple.parser.ParseException Warning: there were 8 unresolved references to classes or interfaces. You may need to specify additional library jars (using '-libraryjars'), or perhaps the '-dontskipnonpubliclibraryclasses' option. java.io.IOException: Please correct the above warnings first. at proguard.Initializer.execute(Initializer.java:308) at proguard.ProGuard.initialize(ProGuard.java:210) at proguard.ProGuard.execute(ProGuard.java:85) at proguard.ProGuard.main(ProGuard.java:499) 

Ya estoy incluyendo la opción '-dontskipnonpubliclibraryclasses' y eso no me está ayudando en absoluto. Intenté incluir la opción '-libraryjars', aunque, podría haber estado utilizando incorrectamente ya que no estoy realmente seguro de cómo estoy destinado a utilizar ese indicador.

¿Alguien tiene alguna idea de cómo puedo corregir este error? En este momento, no puedo crear mi aplicación mientras lo ejecuto a través de Proguard. Cualquier ayuda es apreciada! ¡Gracias!

Cfr. Manual de ProGuard> Solución de problemas> Advertencia: no se puede encontrar la clase referenciada

Com.dropbox parece depender de org.json. En teoría, debe añadir el jar org.json a su directorio de librerías, para que pueda ser procesado e incluido en su aplicación. En la práctica, su aplicación funciona bien sin ella, por lo que puede dejar que ProGuard ignore la dependencia que falta:

 -dontwarn org.json.** 

o

 -dontwarn com.dropbox.** 

No debes añadir -libraryjars, porque cualquier jarras que especifiques no estará presente en los dispositivos Android, a menos que de alguna manera logres instalarlos.

Bueno, a través de prueba y error, básicamente, por lo menos tengo una solución. No consideraría esto una "respuesta" real per se, sin embargo, mi problema fue resuelto agregando las líneas siguientes a mi archivo proguard.cfg .

 -libraryjars /lib/dropbox-android-sdk-1.2.1.jar -libraryjars /lib/httpmime-4.0.3.jar -libraryjars /lib/json_simple-1.1.jar -dontwarn com.dropbox.client2.DropboxAPI -dontwarn com.dropbox.client2.DropboxAPI$Entry -dontwarn com.dropbox.client2.RESTUtility 

Esperemos que ayude a alguien que se encuentra atrapado con este o un problema muy similar en el futuro.

  • Cómo usar Kotlin con Proguard
  • Cómo decirle a ProGuard que mantenga campos privados sin especificar cada campo
  • Proguard error: Esperando la clase seperator de ruta - no estoy seguro donde necesito poner un camino entre comillas
  • Proguard Error al intentar exportar a través de android studio
  • ¿Qué es proguard.txt en la libs / carpeta de un proyecto de Android?
  • Android: ¿Cuáles son las configuraciones recomendadas para Proguard?
  • Configuración adecuada de Proguard para mantener la clase interna estática
  • cómo escribir una configuración proguard para una lib de servicio remoto
  • ¿Cómo verificar los datos de POST se envía desde la aplicación de Android con la firma SHA1 correcta?
  • La compilación con Proguard proporciona SimException: "incompatibilidad de tipo de variable local"
  • Proguard con el proyecto android utilizando bibliotecas (de compatibilidad)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.