【问题标题】:Google play services lib NoClassDefFoundError谷歌播放服务库 NoClassDefFoundError
【发布时间】:2014-07-22 11:58:18
【问题描述】:

我尝试使用来自 google-play-services-lib 的 Location API。

我已经根据开发者页面设置了项目

http://developer.android.com/google/play-services/setup.html

运行应用程序后,它会因错误而崩溃。日志猫:

解析接口1013失败 'Lcom/google/android/gms/location/LocationListener;

java.lang.NoClassDefFoundError: com.example.fragments.MyFragment

MyFragment implements LocationListener and GooglePlayServices 接口。

我花了很多时间在谷歌上搜索,但没有找到解决方案。有人可以帮忙吗?谢谢。

LOGCAT:

07-22 14:08:15.329: E/AndroidRuntime(13259): FATAL EXCEPTION: main
07-22 14:08:15.329: E/AndroidRuntime(13259): java.lang.NoClassDefFoundError:
com.example.fragments.MyFragment
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
com.example.fragments.BaseFragment.getPages(BaseFragment.java:80)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
com.example.fragments.BaseFragment.onCreate(BaseFragment.java:48)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.support.v4.app.Fragment.performCreate(Fragment.java:1477)


 07-22 14:08:15.329: E/AndroidRuntime(13259):   at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570)

 07-22 14:08:15.329: E/AndroidRuntime(13259):   at
android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.Activity.performStart(Activity.java:5114)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.ActivityThread.access$600(ActivityThread.java:141)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.os.Handler.dispatchMessage(Handler.java:99)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.os.Looper.loop(Looper.java:137)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
android.app.ActivityThread.main(ActivityThread.java:5039)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
java.lang.reflect.Method.invokeNative(Native Method)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
java.lang.reflect.Method.invoke(Method.java:511)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-22 14:08:15.329: E/AndroidRuntime(13259):    at dalvik.system.NativeStart.main(Native
Method)

【问题讨论】:

  • 检查你是否在清单中添加了元数据?
  • 我在之前的项目中使用过 google-play-services,一切都很好。我试过没有任何实现,只是实现了接口,它崩溃了,我不知道为什么
  • 那么请发布你完整的logcat?
  • 我用 logcat 编辑了帖子
  • 尝试使用 Google API(19)

标签: android google-play-services android-location


【解决方案1】:

@马林

1) 转到 java 构建路径的项目属性并检查订单和导出的所有内容。 2)http://android-er.blogspot.in/2012/12/add-reference-library-google-play.html

如果您仍然有任何问题,请告诉我

谢谢

【讨论】:

  • 我已经导入 lib 并按顺序检查和导出选项卡,但我总是有 NoClassDeFoundError。
  • 有时您必须将整个外部项目作为库而不仅仅是 jar:我的问题通过将整个项目(在我的情况下为 google-play-services_lib)添加为库而不仅仅是 jar 来解决.到它的步骤(来自@style答案):文件->新建->其他选择Android项目选择“从现有源创建项目”单击“浏览...”按钮并导航到想要的项目完成(现在操作栏项目在您的工作区中)右键单击您的项目->属性在Android->库部分中单击添加选择最近添加的项目->确定
  • 我已经包含了整个项目,而不仅仅是 jar 文件。所以我不明白错误的原因
  • 然后清理,将 lib 重命名为 libs,build,,,并为我的答案投票。我的问题已解决。
【解决方案2】:

我有同样的情况,就我而言,问题是我最近更新到了一个新的 android 包(手动,通过下载新包),但由于某种原因,我也将旧的包保存在我的 PC 上.所以,我的电脑上有两个不同的目录“adt-bundle-windows-x86-________”。通常,这不会造成任何问题,但显然,Google Utils 已更新到 older 目录中,而我正在 newer 目录中开发我的应用程序。这搞砸了整个事情。

我的解决方案是将旧目录“adt-bundle-windows-x86-________”移开,以便 PC 上只存在 1 个目录“adt-bundle-windows-x86-________”。然后我使用 SDK 管理器将所有内容更新为干净的状态。从此,一切顺利。

【讨论】:

    【解决方案3】:

    我所做的是将所有内容更新到最新版本并在项目设置中切换到最新的 Android SDK。我的出发点是https://github.com/playgameservices/play-games-plugin-for-unity/issues/193

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2014-11-20
      • 2015-05-08
      相关资源
      最近更新 更多