簡體   English   中英

任何google-play-services功能的java.lang.NoClassDefFoundError

[英]java.lang.NoClassDefFoundError for any google-play-services feature

我正在使用最新版本的Eclipse,ADT和最新的Android SDK。 例如,如果我要在簡單的HelloWorld Android項目Google Play功能中使用某些功能,

int res = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

該應用程序崩潰

04-27 21:52:23.905: D/ActivityThread(4379): handleBindApplication:my.app.test
04-27 21:52:23.905: D/ActivityThread(4379): setTargetHeapUtilization:0.75
04-27 21:52:23.905: D/ActivityThread(4379): setTargetHeapMinFree:2097152
04-27 21:52:23.945: I/dalvikvm(4379): Could not find method com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable, referenced from method my.app.test.MainActivity.onCreate
04-27 21:52:23.945: W/dalvikvm(4379): VFY: unable to resolve static method 29: Lcom/google/android/gms/common/GooglePlayServicesUtil;.isGooglePlayServicesAvailable (Landroid/content/Context;)I
04-27 21:52:23.945: D/dalvikvm(4379): VFY: replacing opcode 0x71 at 0x0009
04-27 21:52:23.975: D/AndroidRuntime(4379): Shutting down VM
04-27 21:52:23.975: W/dalvikvm(4379): threadid=1: thread exiting with uncaught exception (group=0x4162cd58)
04-27 21:52:23.975: E/AndroidRuntime(4379): FATAL EXCEPTION: main
04-27 21:52:23.975: E/AndroidRuntime(4379): Process: my.app.test, PID: 4379
04-27 21:52:23.975: E/AndroidRuntime(4379): java.lang.NoClassDefFoundError: com.google.android.gms.common.GooglePlayServicesUtil
04-27 21:52:23.975: E/AndroidRuntime(4379):     at my.app.test.MainActivity.onCreate(MainActivity.java:17)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.Activity.performCreate(Activity.java:5231)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2151)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.ActivityThread.access$800(ActivityThread.java:138)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.os.Looper.loop(Looper.java:136)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at android.app.ActivityThread.main(ActivityThread.java:5095)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at java.lang.reflect.Method.invokeNative(Native Method)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at java.lang.reflect.Method.invoke(Method.java:515)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
04-27 21:52:23.975: E/AndroidRuntime(4379):     at dalvik.system.NativeStart.main(Native Method)
04-27 21:52:23.985: I/Process(4379): Sending signal. PID: 4379 SIG: 9

我真的不明白為什么它不起作用。 我已經通過File> Import> [從lib源復制]添加了文件。 我試圖同時使用Android 5.1.1和GoogleAPI。 我將google-play-service_lib作為lib項目鏈接到我的helloworld項目。 之后,我在“屬性”>“ Java構建路徑”>“庫”>“添加罐子”(lib文件)中添加了。 訂單和導出復選框也被選中。 在Android清單中,我添加了

 <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

簡而言之,我直接做了官方手冊中寫的內容

我清理了一下,然后重新啟動,等等……但是沒用。 天哪? 是什么原因? 我在不同的設備和不同的機器上進行了測試。 同樣的愚蠢錯誤!

您可能需要在項目設置-> Android->庫中添加對該項目的引用。

此處查看“引用庫部分”。 在那里也添加您的項目參考,就可以了。

我浪費了很多時間來尋找解決方案。 錯誤的核心是Android SDK更新出錯,舊版本的Eclipse,沒有足夠的內存來容納Eclipse Java Machine( 此處有關於內存錯誤的更多詳細信息)。

甚至我都嘗試過更新構建工具,API等,但是它不起作用。 但是我剛剛下載了新的SDK並完全重新安裝,這有所幫助。 不要忘記安裝新的Eclipse和ADT。 別忘了eclipse.ini文件中的內存增加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM