Android ProGuard erreur avec org.xmlpull.v1.XmlPullParser
Lors de ma demande est de construire avec ProGuard, il échoue avec le message suivant.
J'ai utiliser une valeur par défaut proguard.cfg généré par le SDK Android avec quelques -libraryjars.
Que puis-je faire pour elle?
[2011-03-17 09:27:04 - MyProject] Proguard returned with error code 1. See console
[2011-03-17 09:27:04 - MyProject] Note: there were 4247 duplicate class definitions.
[2011-03-17 09:27:04 - MyProject] Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.content.Intent depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.AnimationDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.BitmapDrawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.graphics.drawable.Drawable depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser
[2011-03-17 09:27:04 - MyProject] You should check if you need to specify additional program jars.
[2011-03-17 09:27:04 - MyProject] Warning: there were 9 instances of library classes depending on program classes.
[2011-03-17 09:27:04 - MyProject] You must avoid such dependencies, since the program classes will
[2011-03-17 09:27:04 - MyProject] be processed, while the library classes will remain unchanged.
[2011-03-17 09:27:04 - MyProject] java.io.IOException: Please correct the above warnings first.
[2011-03-17 09:27:04 - MyProject] at proguard.Initializer.execute(Initializer.java:321)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.initialize(ProGuard.java:211)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.execute(ProGuard.java:86)
[2011-03-17 09:27:04 - MyProject] at proguard.ProGuard.main(ProGuard.java:492)
Apparemment, org.xmlpull.v1.XmlPullParser n'est pas un programme de classe.
J'ai mis à jour ProGuard à la plus récente version(4.6), mais ont les mêmes avertissements.
OriginalL'auteur Nuree Son | 2011-03-17
Vous devez vous connecter pour publier un commentaire.
ajouter cette ligne proguard-project.txt
et cette ligne de projet.propriétés
Merci beaucoup pour la réponse. Dans mon cas je dois utiliser à la fois votre réponse et garder la classe org.xmlpull.v1.** { *; }
Application se bloque toujours lorsque cette ligne est ajoutée
OriginalL'auteur Medo Elkamaly
J'ai résolu ce problème à l'aide de ces paramètres dans le proguard fichier:
J'ai dû ajouter de la fiollowing 2 lignes ro à le faire fonctionner -dontwarn org.codehaus.** et garder la classe org.codehaus.** { *; }
où dois-je ajouter?
proguard-project.txt fichier
Vous êtes en gardant beaucoup de choses que vous n'avez pas besoin d'. Vous aussi vous en avez pas fait clair que vous avez réellement besoin de garder quoi que ce soit. L'OP n'a pas été NoSuchMethod ou ClassNotFound exceptions.
OriginalL'auteur Ton
Je n'ai pas encore la solution pour proguard exécuter via eclipse pour android, mais si vous exécutez proguard manuellement à partir de la ligne de commande, vous pouvez mettre ceci dans votre
proguard.cfg
:Remarque comment
XmlPullParser.class
est filtré de l'API android jar.Ne vous inquiétez pas les mises en garde liées à la
XmlPullParser
pour l'instant. Corriger les erreurs et les avertissements d'autres d'abord, et si vous devez, l'utilisation-ignorewarnings
dans votreproguard.cfg
.OriginalL'auteur pjv
Selon la partielle du journal que vous fournissez, le Android runtime classe org.xmlpull.v1.XmlPullParser a terminé dans le code de votre programme. Vous devriez assurez-vous qu'il n'est pas présent dans bin/classes ou, dans certains jar dans lib, car il est déjà présent dans la bibliothèque de jar android.jar.
En outre, vous avez 4247 dupliquer les définitions de classe. Ceci est probablement dû à la spécification de "quelques -libraryjars" comme vous le mentionnez. Je devine que ces bibliothèque pots sont déjà inclus automatiquement par le script de construction, vous ne pouvez pas définir de nouveau.
Si votre programme de pots contiennent des meilleures implémentations, vous devriez vraiment essayer de filtrer les versions de la bibliothèque, avec le "libraryjars android.jar(!org/xmlpull/v1/**)", de sorte ProGuard devient propre entrée. Si ce n'est pas possible, vous pouvez spécifier quelque chose comme "-dontwarn org.xmlpull.v1.**". Il faut travailler dans ce cas, parce que ProGuard donne le programme des classes de priorité sur bibliothèque de classes.
OriginalL'auteur Eric Lafortune
Je pense que votre bocal paquet incluent
XmlPullParser
de classe, et android.jar également inclure ce.De sorte que vous pouvez supprimer
org.xmlpull.*
classes dans le pot paquet, et de construire à nouveau.comment faire pour l'enlever? la mise en œuvre (com.thoughtworks.xstream:xstream:1.4.10-java7') { exclure(groupe: "xmlpull") } ne fonctionne pas
OriginalL'auteur LeOnLee
La dépendance existent déjà sur votre dossier,
l'exclure comme ci-dessous:
OriginalL'auteur Dylan Breugne
pour moi j'ai pu le résoudre en enlevant mon précédent modifié de construction.gradle
Je l'ai enlevé:
et retourné pour le réglage d'origine
OriginalL'auteur OsamaHamed