2012-03-24 283 views
1

編譯我的android應用程序時遇到問題。我的應用程序使用谷歌api客戶端庫,該應用程序在構建時保持關閉。我一直在嘗試調試3個小時,我仍然無法弄清楚。任何人有想法解決這個問題?Google Api客戶端NoClassDefFoundError ApacheHttpTransport

錯誤日誌:

java.lang.NoClassDefFoundError: com.google.api.client.http.apache.ApacheHttpTransport at com.google.api.client.extensions.android2.AndroidHttp.newCompatibleTransport(AndroidHttp.java:53) at com.redditandroiddevelopers.googletasksclient.GoogleTasksClientActivity.(GoogleTasksClientActivity.java:67) at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1429) at android.app.Instrumentation.newActivity(Instrumentation.java:1021) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) at android.app.ActivityThread.access$2300(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method)

回答

1

NoClassDefFoundError的是一個常見的錯誤時構建Android應用程序,它通常意味着一些所需的庫的依賴沒有得到dexed和內置到最終的APK。

回到你的問題,有一個特定的jar依賴google-http-client-1.7.0-beta.jar(它包含com.google.api.client.http.apache.ApacheHttpTransport)google api client圖書館。您不僅需要添加google api客戶端庫jar,還需要將google api客戶端庫所需的二級庫jar添加到您的項目構建路徑中。

右鍵單擊您的android項目,在庫選項卡中選擇構建路徑 - 配置構建路徑,在這裏添加所有必需的庫。你可以在下載的zip文件的依賴關係目錄中找到它們。

注意,因爲SDK R17,libs目錄下的所有jar文件將被自動添加到項目構建路徑,在here更多細節。

+0

爲您的信息,我通過使用maven添加依賴關係,目前依賴關係是[鏈接](http://i.imgur.com/omril.png)。並且,它仍然會拋出錯誤。任何建議? – damniatx 2012-03-25 04:03:02

+0

它看起來像我需要手動添加庫,maven無法加載庫。謝謝。 – damniatx 2012-03-25 07:29:05