proguard infierno – no se puede encontrar la clase referenciada

Por lo tanto, estoy INTENTANDO lanzar algún software pero Proguard me está dando un dolor de cabeza.

Cuando trato de exportar usando Proguard recibo muchas advertencias, es decir, “no puedo encontrar la clase referenciada”

Por ejemplo:

[2011-08-07 17:44:37 - GAME] Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent [2011-08-07 17:44:37 - GAME] Warning: there were 52 unresolved references to classes or interfaces. [2011-08-07 17:44:37 - GAME] You may need to specify additional library jars (using '-libraryjars'), [2011-08-07 17:44:37 - GAME] or perhaps the '-dontskipnonpubliclibraryclasses' option. [2011-08-07 17:44:37 - GAME] java.io.IOException: Please correct the above warnings first. [ 

Las advertencias parecen estar relacionadas con el marco simple, así que en mi archivo de configuración de proguard he agregado lo siguiente:

 -libraryjars pathtoprojecttolibs\simple-xml-2.4.jar 

Donde pathtoprojecttolibs es la ruta a los tarros a los que hace referencia mi proyecto.

Esto no hace NINGUNA diferencia.

Si el marco simple hace referencia a javax ¿puedo decirle a proguard que también ignore esto?

¿Algunas ideas?

org.simpleframework.xml.stream.StreamReader en su código hace referencia a javax.xml.stream.events.XMLEvent . La última clase es parte del tiempo de ejecución de Java ( rt.jar ) pero no es parte del tiempo de ejecución de Android ( android.jar ), por lo que ProGuard advierte que algo podría estar roto. Si está seguro de que su aplicación funciona de todos modos, puede especificar

 -dontwarn javax.xml.stream.events.** 

ProGuard infierno?

En mi caso, la causa raíz estaba aquí . Esas advertencias que puedes omitir:

 -dontwarn org.simpleframework.xml.stream.** 

La respuesta original está aquí

Debe incluir esto en su configuración de Proguard:

 -dontskipnonpubliclibraryclasses 

Mi llave mágica que resolvió mis horas de búsqueda: agréguela a progruard-android.txt

 -dontskipnonpubliclibraryclassmembers 

Hmm. Al leer esa advertencia, parecería que la biblioteca que está tratando de usar depende de javax.xml.stream.events. No creo que el espacio de nombres en realidad esté incluido en Android. (Ver el índice del paquete ).

Intenta desplegarlo en el emulador sin usar proguard y ver si funciona. Mi conjetura sería no si esa advertencia es precisa.

Creo que este es un caso extremo, pero en mi caso tuve que limpiar completamente la carpeta de comstackción en mi protector de Jenkins. Intenté trabajar con el código anterior, que ya no estaba allí, por si acaso alguien tiene el mismo problema.

En mi caso, no he cambiado nada y la advertencia comenzó a mostrarse. El problema era con los caches de gradle rotos. Verifique mi otra respuesta . Lo comparto porque tardé 2 horas en encontrar el problema:]