2012-05-19 10 views
19

ich mit ProGuard folgenden Fehler immer erhalten:ProGuard Fehler kann nicht übergeordnete Klasse oder Schnittstelle org.apache.http.entity finden

[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 

Meine proguard.cfg Datei ist:

-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 

I‘ Habe schon alle meine externen Bibliotheken hinzugefügt, warum bekomme ich immer diese Fehler? Kann jemand helfen?

BEARBEITEN 21.05.2012: Das Problem ist, wenn Sie "Dropbox" jar UND "ActionBarSherlock" hinzufügen. Wenn ich nur "Dropbox" hinzufüge, habe ich kein Problem. Wenn ich nur "ActionBarSherlock" hinzufüge, habe ich kein Problem. Aber wenn ich beide hinzufüge, würde ich die oben genannten Fehler erhalten.

Antwort

35

Das Problem besteht, wenn Sie "ActionBarSherlock" und "DropBox" -Gruppen zu Ihrem Projekt hinzugefügt haben. Um das Problem, fügen Sie die folgende Zeile in proguard-project.txt Datei zu lösen:

-dontwarn org.apache.** 

Die Warnung wird ignoriert und es wird funktionieren, weil jeder der allein Gläser arbeiten. Also ich denke, das wird der Bug in ProGuard sein, wenn beide hinzugefügt werden.

+0

es ist nicht funktionieren und der Fehler ist: Warnung: aa $ a: kann nicht finden, das referenzierte Feld 'org.apache.http.HttpEntity wrappedEntity' in Programmklasse aa $ a – Kenji

+0

@Kenji: Sorry, ich benutze ActionBarSherlock nicht mehr, also Ich kann dir nicht helfen. – chrisonline

+0

@BinilS: Was meinst du mit "API wird nicht mit org.apache aufrufen"? – chrisonline

8

Möglicherweise müssen Sie:

-keep class org.apache.http.**

-keep interface org.apache.http.**

Das natürlich ProGuard wird unter der Annahme über die Apache-Klassen beschwert. Zugegebenermaßen bin ich etwas ratlos, da ich kein Experte für ProGuard bin.

+0

Ja ich denke, das ist eine Lösung, aber ich möchte es nicht behalten, weil ich es nicht verwende. Und alle externen Gläser, die ich zu Bibliotheksjars hinzugefügt habe! Warum bekomme ich diesen Fehler? – chrisonline

+0

Sie haben möglicherweise keine Wahl. Kann ich auf der ProGuard Beispielseite nachsehen? http://proguard.sourceforge.net/index.html#manual/examples.html – Kerry

+1

Ich habe es versucht, aber es funktioniert nicht. Derselbe Fehler ... – chrisonline

Verwandte Themen