[英]NoClassDefFoundError: com.google.android.gms.common.GooglePlayServicesUtil on device
[英]Could not find method com.google.android.gms.common.GooglePlayServicesUtil
我知道这个问题已经有很多答案和解决方法......但是没有什么对我有用......
我正在尝试将推送通知添加到我的Android应用程序中。 为此,我使用“google-play-services_lib”和“google-play-services.jar”。 我按照谷歌设置Google Play Services for Eclipse提供的教程。
我做了什么 :
将现有的Android代码导入Workspace(/ android-sdks / extras / google / google_play_services / libproject / google-play-services_lib),选中“将项目复制到工作区”...根据谷歌的建议
注意:您应该引用复制到开发工作区的库的副本 - 不应直接从Android SDK目录引用库。
将库引用到我的项目中(右键单击 - >属性 - > Android - >库 - >添加 - > google-play-services_lib)
在我的projetc libs文件夹中添加了google-play-services.jar的副本。
将jar文件添加到我的构建路径...我必须取消选中Order and export选项卡下的jar文件以避免以下错误:
[2014-07-14 09:41:56 - Dex Loader]无法执行dex:多个dex文件定义Lcom / google / android / gms / internal / a;
[2014-07-14 09:41:56]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Lcom / google / android / gms / internal / a;
在我的清单文件中添加了以下内容:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
创建专业保护例外
-keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; }
当我尝试简单地检查设备是否具有以下的Google Play服务APK时
GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)
我总是看到这个错误:
Could not find method com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable, referenced from method com.example.testpush.MainActivity.onCreate
而且:
07-14 10:34:53.631: E/AndroidRuntime(421): FATAL EXCEPTION: main
07-14 10:34:53.631: E/AndroidRuntime(421): java.lang.NoClassDefFoundError: com.google.android.gms.common.GooglePlayServicesUtil
07-14 10:34:53.631: E/AndroidRuntime(421): at com.example.testpush.MainActivity.onCreate(MainActivity.java:16)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.os.Handler.dispatchMessage(Handler.java:99)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.os.Looper.loop(Looper.java:123)
07-14 10:34:53.631: E/AndroidRuntime(421): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-14 10:34:53.631: E/AndroidRuntime(421): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 10:34:53.631: E/AndroidRuntime(421): at java.lang.reflect.Method.invoke(Method.java:507)
07-14 10:34:53.631: E/AndroidRuntime(421): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-14 10:34:53.631: E/AndroidRuntime(421): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-14 10:34:53.631: E/AndroidRuntime(421): at dalvik.system.NativeStart.main(Native Method)
我在这里遗漏了什么???? 谢谢你的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.