【问题标题】:Imported project throws java.lang.ClassNotFoundException导入的项目抛出 java.lang.ClassNotFoundException
【发布时间】:2013-07-17 15:49:25
【问题描述】:

所以我将一个现有项目导入到 Eclipse 中,但我在让它工作时遇到了很多麻烦。该项目与其他三个库项目一起提供:

  • google_play_services-lib

  • 捕获活动

  • 纵向二维码

导入项目后,我进入“Java 构建路径”并为所需的 jar 添加了路径:

成功添加所需的 jar 后,我继续访问库。我导入了所有三个需要的库(我是与项目一起提供的),一切都很顺利:

之后,我还确保在导出选项卡下检查了私有库:

导入项目后,我尝试运行它,但它立即崩溃。这是 logcat 文件:

07-17 17:33:36.543: E/AndroidRuntime(25965): FATAL EXCEPTION: main
07-17 17:33:36.543: E/AndroidRuntime(25965): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{si.dvanadva.evanturist/si.dvanadva.evanturist.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-1.apk
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.os.Looper.loop(Looper.java:137)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread.main(ActivityThread.java:5041)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at java.lang.reflect.Method.invokeNative(Native Method)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at java.lang.reflect.Method.invoke(Method.java:511)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at dalvik.system.NativeStart.main(Native Method)
07-17 17:33:36.543: E/AndroidRuntime(25965): Caused by: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-1.apk
07-17 17:33:36.543: E/AndroidRuntime(25965):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
07-17 17:33:36.543: E/AndroidRuntime(25965):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
07-17 17:33:36.543: E/AndroidRuntime(25965):    ... 11 more

从logcat文件中可以看出问题出在'finding MainActivity class'

到目前为止我尝试过的解决方案:

  • 检查 MainActivity 是否在 AndroidManifest 文件中正确声明(它是)

  • 已检查导出选项卡下的私有库

  • 删除 bin 文件夹并清理项目

  • 我还尝试通过不包括包名称来在 AndroidManifest 文件中声明活动,如下所示:android:name=".activityname"

  • 从我的手机中删除了以前版本的应用程序并尝试再次编译

  • 在工作区项目中检查了 si.dvanadva.evanturist-1.apk 但我找不到(我错过了吗?)

  • this 设置了 JAVA_HOME 但不起作用

  • 启动了一个新的 android 应用项目并在其中复制了文件

也许我还尝试了其他方法,但我忘记提及了,我已经为此工作了很长一段时间,但我已经没有东西可以尝试了。我将非常感谢任何形式的帮助!

【问题讨论】:

  • "/data/app/si.dvanadva.evanturist-1.apk" -- 这是路径吗?
  • MainActivity.class 的路径不同。它是工作区/Evanturist/bin/classes/si/dvanadva/evanturist,这是导致问题的原因吗?
  • 路径不应该是目录吗? si.dvanadva.evanturist-1.apk?你检查了吗?
  • 我查了一下,我在任何地方都找不到 si.dvanadva.evanturist-1.apk,甚至没有 data/app 目录
  • 尝试将文件放在项目文件夹的src 目录中。

标签: java android eclipse import


【解决方案1】:

当我没有将代码导入 Eclipse,但尝试从其下载位置运行库时,我相当肯定我已经看到了类似的情况,例如对于 Google Play 游戏服务:

从 Android 示例中导入 TypeANumber 和 BaseGameUtils 代码 进入您的工作区。要在 Eclipse 中执行此操作:单击文件 > 导入 > Android > 现有 Android 代码进入工作区。浏览至 您在开发机器上下载 TypeANumber 的目录 并单击确定以导入文件。执行相同的步骤 BaseGameUtils。

(我从https://developers.google.com/games/services/android/quickstart得到这个)

另外,虽然这不完全适合您的问题:

Google Player Game Service Error: Can't build the sample game

【讨论】:

  • 是的!!!!我不敢相信我还没试过这个!问题是从其他目录添加了一个库项目谷歌播放服务,而不是从下载位置。太感谢了!!毫无疑问,你应该得到赏金 :)
  • 不客气。在我偶然发现可能的原因之前,我花了很多时间阅读其他贡献并阅读我的笔记。
  • @Matthew 我认为如果他帮助解决了它,您应该奖励赏金(我不确定到期如何运作;系统很复杂 IMO)。我正要请你项目看看,但看起来它已经解决了:)
  • @ADTC 是的!谢谢你提醒我,我想在几天前奖励赏金,但它不会让我,因为我不得不再等 20 个小时然后我完全忘记了它,对此感到抱歉:)
猜你喜欢
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多