2014-01-28 2 views
3

Когда я отладить мое приложение она работает нормально, но когда я пытаюсь экспортировать свою APK и установить его, я получаю этот вопрос:java.lang.NoClassDefFoundError: org.apache.http.params.SyncBasicHttpParams

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,

я добавил ссылочные LIBS также, как это:

-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 

любая идея .. @ спасибо

+1

http://stackoverflow.com/a/18246887/2624806 может помочь вам здесь. – CoDe

+1

n в основном это может быть связано с неправильным файлом lib jar ur, используя здесь, здесь http://stackoverflow.com/a/10423230/2624806 – CoDe

ответ

2

В ваших библиотеках нет HttpCore.

Импортируйте HttpCore

Эта ссылка HttpCore 4.1, Вы можете найти HttpCore 4.2 или 4.3, если вы хотите.

В будущем, когда вы импортировать библиотеку, пожалуйста, убедитесь, что вы импортировать соответствующую библиотеку

+0

Я использовал HttpCore в libs и экспортировал тоже ..seems его не работает, та же проблема – Janmejoy

+1

Я думаю, вы должны скачать http-компоненты в этой ссылке и добавить в свои библиотеки. http://hc.apache.org/downloads.cgi – Luc

1

Импорт пакета на вашем пачке

Import-Package: org.apache.http.params 
2

Добавьте следующие строки к вам proguard-project.txt файл:

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

Я также хотел бы предложить вам использовать repackaged version of HttpClient for Android вместо оригинального HttpClient баночку, чтобы избежать загрузки класса столкновений с в комплекте с Android. Но, насколько я вижу, вам также потребуется перестроить модуль Signpost HttpClient для использования пакета ch.boye.httpclientandroidlib вместо org.apache.http (и не забудьте также обновить название пакета в proguard-project.txt).

+0

@ldolon Я уже добавил указанный выше класс i proguard-project.txt, но тот же выпуск – Janmejoy

+0

@Janmejoy Вы пытались использовать переупакованный вариант HttpClient, упомянутый мной в ответе? – Idolon

1

В стандартной Android сборки (Ant, Eclipse Gradle), не указывайте -libraryjars или -injars, так как скрипты сборки уже будут указывать для вас. Просто убедитесь, что вы добавили все необходимые библиотеки в каталог libs, как обычно, поэтому скрипты сборки будут включать их.

В Eclipse библиотеки могут быть помечены как экспортированные.

Смежные вопросы