适用于 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 登录 - 发布与调试

为啥使用 KML 数据检索适用于 Android 的 Google 路线不再有效? [复制]

如何设置适用于 Android 的 Google Cloud Messaging?