java.lang.NoClassDefFoundError:org.apache.http.params.SyncBasicHttpParams

时间:2014-01-28 13:05:42

标签: android apk proguard

当我调试我的应用程序它工作正常,但当我尝试导出我的apk并安装它我得到这个问题:

java.lang.NoClassDefFoundError: org.apache.http.params.SyncBasicHttpParams
at aig.a(Unknown Source)
at ahy.q(Unknown Source)
at ahy.d(Unknown Source)
at ahy.r(Unknown Source)
at ahy.c(Unknown Source)
at ahy.a(Unknown Source)
at ahy.a(Unknown Source)
at ahy.execute(Unknown Source)
at com.application.Login.a(Unknown Source)
at com.application.Login.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5115)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2248)
at android.app.ActivityThread.access$600(ActivityThread.java:145)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)

我正在使用proguard,

我添加了参考库,如下所示:

-libraryjars /libs/org.apache.httpcomponents.httpclient_4.2.1.jar
-libraryjars /libs/signpost-commonshttp4-1.2.1.1.jar
-libraryjars /libs/signpost-core-1.2.1.1.jar
-libraryjars /libs/signpost-jetty6-1.2.1.1.jar
-libraryjars /libs/twitter4j-core-2.1.6.jar

任何想法.. @ thanks

4 个答案:

答案 0 :(得分:2)

将以下行添加到proguard-project.txt文件中:

-keep class org.apache.http.** {
    *;
}

我还建议您使用repackaged version of HttpClient for Android而不是原始的HttpClient jar来避免类与Android捆绑的版本发生冲突。但据我所知,您还需要重建Signpost HttpClient模块以使用ch.boye.httpclientandroidlib包而不是org.apache.http(并且不要忘记更新proguard-project.txt中的包名称)。

答案 1 :(得分:2)

你的libs中没有HttpCore。

请导入HttpCore

此链接是HttpCore 4.1,如果需要,可以搜索HttpCore 4.2或4.3。

将来,当您导入库时,请确保导入相关库

答案 2 :(得分:1)

导入捆绑包

Import-Package: org.apache.http.params

答案 3 :(得分:1)

在标准的Android版本(Ant,Eclipse,Gradle)中,不要指定-libraryjars或-injars,因为构建脚本已经为您指定了这些脚本。只需确保像往常一样将所有必要的库jar添加到libs目录中,因此构建脚本将包含它们。

在Eclipse中,库可能需要标记为已导出。