unity tutorial studio minifyenabled features android proguard

android - tutorial - proguard infierno-no se puede encontrar la clase referenciada



proguard unity (7)

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?


Creo que este es un caso extremo, pero en mi caso tuve que limpiar completamente la carpeta de compilació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.


Debe incluir esto en su configuración de Proguard:

-dontskipnonpubliclibraryclasses


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

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

La respuesta original está aquí


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 answer . Lo comparto porque tardé 2 horas en encontrar el problema:]


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.


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

-dontskipnonpubliclibraryclassmembers


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?