proguard hell – impossible de trouver la classe référencée

Donc, je suis ESSAYANT de sortir un logiciel, mais Proguard me donne mal à la tête.

Lorsque j’essaie d’exporter en utilisant proguard, je reçois beaucoup d’avertissements, c.-à-d. “Ne peut pas trouver la classe référencée”

Par exemple:

[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. [ 

Les avertissements semblent liés à simpleframework, donc dans mon fichier de configuration proguard, j’ai ajouté les éléments suivants:

 -libraryjars pathtoprojecttolibs\simple-xml-2.4.jar 

pathtoprojecttolibs est le chemin d’access aux jars référencés par mon projet.

Cela ne fait aucune différence.

Si simpleframework fait référence à javax, puis-je dire à proguard d’ignorer cela aussi?

Des idées?

org.simpleframework.xml.stream.StreamReader dans votre code fait référence à javax.xml.stream.events.XMLEvent . Cette dernière classe fait partie du runtime Java ( rt.jar ) mais ne fait pas partie du runtime Android ( android.jar ). ProGuard avertit donc que quelque chose peut être cassé. Si vous êtes sûr que votre application fonctionne de toute façon, vous pouvez spécifier

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

ProGuard Enfer?

Dans mon cas, la cause principale était ici . Ces avertissements peuvent être ignorés avec:

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

La réponse originale est ici

Vous devriez inclure ceci dans votre configuration Proguard:

 -dontskipnonpubliclibraryclasses 

Ma clé Magic qui a résolu mes heures de recherche: ajoutez ceci à progruard-android.txt

 -dontskipnonpubliclibraryclassmembers 

Hmm. En lisant cet avertissement, il semblerait que la bibliothèque que vous essayez d’utiliser a une dépendance sur javax.xml.stream.events. Je ne pense pas que cet espace de nommage soit inclus dans Android. (Voir index du package ).

Essayez de le déployer sur l’émulateur sans utiliser proguard et voyez si cela fonctionne. Je suppose que non si cet avertissement est exact.

Je pense que c’est un cas de figure mais dans mon cas, j’ai dû effacer complètement le dossier de compilation sur mon progiciel Jenkins essayé de travailler avec l’ancien code qui n’était plus là – juste au cas où quelqu’un aurait le même problème.

Dans mon cas, je n’ai rien changé et l’avertissement a commencé à apparaître. Le problème était avec les caches cassées. Vérifiez mon autre réponse . Je partage avec cela parce qu’il m’a fallu 2 heures pour trouver le problème:]