【问题标题】:Why do I have java.lang.ClassnotFoundException while implementing location listener? (using ECLIPSE)为什么在实现位置侦听器时出现 java.lang.ClassnotFoundException? (使用 ECLIPSE)
【发布时间】:2015-02-14 15:12:14
【问题描述】:

我知道类似的问题已经出现在 SO 上,我已经通读并尝试实施提到的解决方案,但没有任何效果。具体问题是这样的(使用ECLIPSE):

我正在尝试在我的应用中的一项活动(通过菜单选择触发)中实现位置感知。只要我的代码看起来像,

"公共类 MealHistoryActivity 扩展 Activity {...}",

我没有收到任何错误。一旦我将其修改为

公共类 MealHistoryActivity 扩展 Activity 实现 ConnectionCallbacks、OnConnectionFailedListener、LocationListener {..",

它会引发以下错误:

E/AndroidRuntime(5027):原因:java.lang.ClassNotFoundException:在路径上找不到类“com.package.activities.MealHistoryActivity”:DexPathList [[zip 文件“/data/app/com.package .activities-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

我尝试过的:

  1. 添加库项目(支持库以及 google play 服务)并清理所有项目。
  2. 包括应用程序的 Android 私有库以及库项目。
  3. 仔细检查 android manifest 中的 API 密钥以及与之关联的 SHA-1 指纹密钥。
  4. 在清单中使用位置服务所需的所有互联网和网络权限。

非常感谢有关如何解决此问题的任何想法,因为我在过去几天一直坚持下去!

【问题讨论】:

  • 我的建议是使用Android Studio,Eclipse ADT现在走上了“死亡之路”。
  • 刚刚尝试将项目迁移到 Android Studio。它说需要 Gradle 2.2.1 才能迁移到 Gradle 包装器和同步。我已按照stackoverflow.com/questions/27311467/… 中列出的步骤进行操作,但没有用。

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


【解决方案1】:

错误表明来自 google-play-service 项目的类未加载。

确保您引用的是工作区中的项目副本,而不是 sdk 目录中的副本。尝试这样做或从您的工作区中删除 google 服务项目并重做this guide 中的步骤。

另一个可能的原因是版本不匹配。如果您的设备版本低于上述指南中指定的版本,则根本不会在您的设备上安装 Google 服务项目。

【讨论】:

  • 感谢您的建议!!我的谷歌播放服务库在工作区中,但我从 SDK 重新安装了播放服务,将它们导入工作区,现在它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2021-02-14
  • 2010-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多