Ошибка ProGuard не может найти суперкласс или интерфейс org.apache.http.entity
Я всегда получаю ошибку 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" и "ActionBarSherlock".
Если я добавлю только "Dropbox", у меня нет проблем.
Если я добавлю только "ActionBarSherlock", у меня нет проблем.
Но если бы я добавил оба, я бы получил ошибки выше.
Ответы
Ответ 1
Проблема возникает, если вы добавили баннеры ActionBarSherlock и DropBox в свой проект.
Чтобы решить проблему, добавьте следующую строку в файл proguard-project.txt:
-dontwarn org.apache.**
Предупреждение будет проигнорировано, и оно будет работать, потому что каждая из банок работает.
Поэтому я думаю, что это будет ошибка в ProGuard, если оба добавлены.
Ответ 2
Возможно, вам нужно:
-keep class org.apache.http. **
-keep interface org.apache.http. **
Это предполагает, что, конечно, ProGuard жалуется на классы apache. По общему признанию, я догадываюсь, поскольку я не эксперт в ProGuard.