为什么我在实施位置侦听器时有 java.lang.ClassnotFoundException? (使用 ECLIPSE)

Why do I have java.lang.ClassnotFoundException while implementing location listener? (using ECLIPSE)

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

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

"public class MealHistoryActivity extends Activity {...}",

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

public class MealHistoryActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener, LocationListener {..",

它抛出以下错误:

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

我尝试过的:

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

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

错误表明 google-play-service 项目中的 类 没有加载。

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

中的步骤

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