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

时间:2015-04-27 19:07:50

标签: java android eclipse google-play-services

我正在使用最新版本的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

我真的不明白为什么它不起作用。 我通过文件>导入>添加了[从lib源复制]。 我试过使用Android 5.1.1和GoogleAPI。  我将google-play-service_lib作为lib项目链接到我的helloworld项目。之后我添加了属性> Java构建路径>库> gt;添加jar(lib文件)。还会检查“订单”和“导出”复选框。 在Android Manifest中我添加了

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

简而言之,我直接做了official manual and more

中所写的内容

我清理,重新启动等...... 但它不工作。天啊为什么?是什么原因?我在不同的设备和不同的机器上测试过。 同样的愚蠢错误!!

2 个答案:

答案 0 :(得分:1)

您可能需要在项目设置 - &gt; Android-&gt;库中添加对项目的引用。

查看&#34;引用库部分&#34; here。在那里添加你的项目参考,你应该没事。

答案 1 :(得分:0)

我浪费了很多时间来找到解决方案。错误的核心是Android SDK更新出错,旧版Eclipse,没有为Eclipse Java Machine提供内存(更详细的内存错误here)。

即使我尝试更新构建工具,API等,它也无法正常工作。但我刚刚下载了新SDK并完全重新安装,这有所帮助。不要忘记安装新的Eclipse和ADT。不要忘记eclipse.ini文件中的memory increasing