23 votes

Erreur ProGuard ne peut pas trouver la superclasse ou l'interface org.apache.http.entity

J'obtiens toujours avec ProGuard l'erreur suivante :

[2012-05-19 17:50:13 - xxx] Warning: there were 13 unresolved references to      program class members.
[2012-05-19 17:50:13 - xxx]          Your input classes appear to be     inconsistent.
[2012-05-19 17:50:13 - xxx]          You may need to recompile them and try again.
[2012-05-19 17:50:13 - xxx]          Alternatively, you may have to specify the option 
[2012-05-19 17:50:13 - xxx]          '-dontskipnonpubliclibraryclassmembers'.
[2012-05-19 17:50:13 - xxx] Error: Please correct the above warnings first.
[2012-05-19 17:55:40 - xxx] Proguard returned with error code 1. See console
[2012-05-19 17:55:40 - xxx] Note: there were 239 duplicate class definitions.
[2012-05-19 17:55:40 - xxx] Warning: org.apache.http.entity.mime.FormBodyPart:    can't find superclass or interface org.apache.james.mime4j.message.BodyPart
[2012-05-19 17:55:40 - xxx] Warning: org.apache.http.entity.mime.HttpMultipart: can't find superclass or interface org.apache.james.mime4j.message.Multipart
[2012-05-19 17:55:40 - xxx] Warning: org.apache.http.entity.mime.MinimalField: can't find superclass or interface org.apache.james.mime4j.parser.Field

Mon fichier proguard.cfg est :

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepattributes *Annotation*
-keepattributes SourceFile, LineNumberTable

-libraryjars /libs/crittercism_v2_0_1.jar
-libraryjars /libs/dropbox-android-sdk-1.2.2.jar
-libraryjars /libs/FlurryAgent.jar
-libraryjars /libs/httpmime-4.0.3.jar
-libraryjars /libs/json_simple-1.1.jar

J'ai déjà ajouté toutes mes librairies externes, alors pourquoi est-ce que j'obtiens toujours ces erreurs ? Quelqu'un peut-il m'aider ?

MODIFIER 21.05.2012 : Le problème se pose si vous ajoutez le bocal "Dropbox" ET "ActionBarSherlock". Si j'ajoute uniquement "Dropbox", je n'ai aucun problème. Si j'ajoute seulement "ActionBarSherlock", je n'ai pas de problème. Mais si j'ajoute les deux, j'obtiens les erreurs ci-dessus.

39voto

chrisonline Points 678

Le problème existe si vous avez ajouté les bocaux "ActionBarSherlock" et "DropBox" à votre projet. Pour résoudre le problème, ajoutez la ligne ci-dessous à votre fichier proguard-project.txt :

-dontwarn org.apache.**

L'avertissement sera ignoré et cela fonctionnera parce que chacun des bocaux fonctionne seul. Donc je pense, que ce sera le bogue dans ProGuard, si les deux sont ajoutés.

10voto

Kerry Points 2114

Il se peut que vous ayez besoin de :

-garder la classe org.apache.http.**

-keep interface org.apache.http.**

C'est en supposant bien sûr que ProGuard se plaint des classes apache. Certes, je devine un peu car je ne suis pas un expert de ProGuard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X