Вопрос по android – Ошибка ProGuard не может найти суперкласс или интерфейс org.apache.http.entity

21

Я получаю всегда с ProGuard следующую ошибку:

[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

Мой файл proguard.cfg:

-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

Я уже добавил все свои внешние библиотеки, так почему я всегда получаю эти ошибки? Кто-нибудь может помочь?

EDIT 21.05.2012: Проблема в том, что если вы добавите «Dropbox» баночка AND & quot; ActionBarSherlock & quot ;. Если я добавлю только «Dropbox», у меня нет проблем. Если я добавлю только «ActionBarSherlock», у меня нет проблем. Но если бы я добавил оба, я получил бы ошибки выше.

Ваш Ответ

2   ответа
38

ActionBarSherlock & quot; и & quot; DropBox & quot; баночки для вашего проекта. Чтобы решить эту проблему, добавьте следующую строку в ваш файл proguard-project.txt:

-dontwarn org.apache.**

Предупреждение будет проигнорировано, и оно будет работать, потому что каждый из банок работает. Так что я думаю, что это будет ошибка в ProGuard, если оба будут добавлены.

@BinilS: что вы подразумеваете под «API» не будет вызывать с помощью org.apache »? chrisonline
@ Кендзи: Извините, я больше не использую ActionBarSherlock, поэтому не могу вам помочь. chrisonline
это не работает, и ошибка: Предупреждение: a.a $ a: не может найти ссылочное поле »org.apache.http.HttpEntity wrappedEntity» apos; в классе программы a.a $ a
10

-keep class org.apache.http.**

-keep interface org.apache.http.**

Это при условии, конечно, что ProGuard жалуется на классы apache. По общему признанию я предполагаю несколько, поскольку я не эксперт по ProGuard.

Это не работает, не должно помечать, чтобы отвечать.
Это не решает проблему - используйте @chrisonline выше.
Я пробовал, но это не работает. Та же ошибка ... chrisonline
Да, я думаю, что это решение, но я не хочу его оставлять, потому что я его не использую. И все внешние банки, которые я добавил в libraryjars! Так почему я получаю эту ошибку? chrisonline
Мой действительно может быть неправильным ответом, но отключение предупреждения тоже не очень хорошая идея, вы просто скрываете проблему, в которую я верю. Дальнейшее исследование проблемы, чтобы понять это требуется.

Похожие вопросы