适用于 Android 的 Google+ 平台 - NoClassDefFoundError:com.google.android.gms.samples.plus.SignInActivity
Posted
技术标签:
【中文标题】适用于 Android 的 Google+ 平台 - NoClassDefFoundError:com.google.android.gms.samples.plus.SignInActivity【英文标题】:Google+ Platform for Android - NoClassDefFoundError: com.google.android.gms.samples.plus.SignInActivity 【发布时间】:2013-03-05 10:32:12 【问题描述】:我想运行 google+ 示例:PlusSampleActivity。
此处定义了执行此操作的步骤:https://developers.google.com/+/mobile/android/getting-started
-
将 Google Play 服务下载到我的 Eclipse;
在 Google API 控制台中,创建一个 API 项目
在“服务”窗格中,启用 Google+ API
在 API 访问窗格中,创建 OAuth 2.0 客户端 ID 设置名称产品 选择安卓 设置包名为:com.google.android.gms.samples.plus 使用 keytool 生成签名证书指纹 创建客户端 ID按照页面上的说明导入样本
该项目没有任何编译时错误。
但是如果我运行应用程序,我会得到一个异常:
FATAL EXCEPTION: main java.lang.ExceptionInInitializerError at
java.lang.Class.newInstanceImpl(Native Method) at
java.lang.Class.newInstance(Class.java:1409) at
android.app.Instrumentation.newActivity(Instrumentation.java:1021) at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
at android.app.ActivityThread.access$1500(ActivityThread.java:121) at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) at
android.os.Handler.dispatchMessage(Handler.java:99) at
android.os.Looper.loop(Looper.java:130) at
android.app.ActivityThread.main(ActivityThread.java:3701) at
java.lang.reflect.Method.invokeNative(Native Method) at
java.lang.reflect.Method.invoke(Method.java:507) at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at
dalvik.system.NativeStart.main(Native Method) Caused by:
java.lang.NoClassDefFoundError:
我不知道出了什么问题,当我尝试运行第 3 步初始化 PlusClient 的更简单应用程序时,类似的异常:
Caused by: java.lang.NoClassDefFoundError:
com.example.ExampleActivity...
当然,我通过添加新的客户端 ID 添加了对应用程序的访问权限。
引用已正确添加到库中
我解决了我的问题:
右键项目,选择Android Tools -> Add Support Library
Source on how to do this.
【问题讨论】:
您是否还包括了 google_play_services 库,如第 2 步中所述? developers.google.com/+/quickstart/… 是的,问题解决了:android-er.blogspot.com/2013/01/… 【参考方案1】:尝试运行 Project->Clean 来解决问题。这似乎对一个人有用。
项目会自动引用该库,但可能 Eclipse 忘记了这一点,需要提醒一下。
【讨论】:
【参考方案2】:正如 user1861240 所说,正确答案是: 右键单击您的项目,选择 Android 工具 > 添加支持库...
显然,这为您设置了支持库的最新版本。
【讨论】:
【参考方案3】:我遇到了同样的错误,但添加支持库对我不起作用。我还尝试了 Project-> Clean 并重新启动 Eclipse。最终它在我将目标 API 更改为 4.4 后工作。
【讨论】:
【参考方案4】:只需按照here 的说明进行操作即可 请记住也要遵循项目设置,不要忽略任何步骤。
【讨论】:
以上是关于适用于 Android 的 Google+ 平台 - NoClassDefFoundError:com.google.android.gms.samples.plus.SignInActivity的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Android 的 Google+ 登录 - Google 权限活动结果代码
适用于 Android 的 Google Places API 未显示
xml 适用于Google协作平台的Twitter Feed模块
适用于 Android 的 Google 登录 - 发布与调试