classdefnotfound在android上引用java项目时

时间:2014-12-30 22:01:10

标签: java android jvm noclassdeffounderror dalvik

我在尝试编译Android项目时遇到了一个独特的错误。我正在开发API级别21(棒棒糖)

我的项目引用了我之前创建的java项目。该项目不包含任何错误。

我看到有类似的项目有相同的错误。我已尝试以下方法来修复错误:

  • 在订单和导出标签中将Android依赖项移至第一位。
  • 将订单中的gen文件夹移到src文件夹上方并导出。
  • 确保将comipler设置为1.6。
  • 确保选择Google API作为构建目标。
  • 确保项目已添加到Java Build Path下的Projects
  • 确保按顺序勾选所有方框并导出。

如果我注释掉引用java库的行,那么项目就像你期望的那样工作。

我真的很感激任何帮助,我完全没有想法。

下面是我的堆栈跟踪:

    12-30 21:58:27.841: E/AndroidRuntime(14193): FATAL EXCEPTION: main
12-30 21:58:27.841: E/AndroidRuntime(14193): Process: com.running.mattboyle.runnertoolbox, PID: 14193
12-30 21:58:27.841: E/AndroidRuntime(14193): java.lang.NoClassDefFoundError: common.Parser$1
12-30 21:58:27.841: E/AndroidRuntime(14193):    at common.Parser.parse(Parser.java:79)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at common.Parser.<init>(Parser.java:54)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at search.Search.<clinit>(Search.java:34)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at routeGeneration.routePlotter.createRoute(routePlotter.java:28)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at com.running.mattboyle.runnertoolbox.RunningMap.getUsersLocation(RunningMap.java:115)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at com.running.mattboyle.runnertoolbox.RunningMap.onCreate(RunningMap.java:59)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.Activity.performCreate(Activity.java:5933)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.ActivityThread.access$800(ActivityThread.java:144)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.os.Handler.dispatchMessage(Handler.java:102)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.os.Looper.loop(Looper.java:135)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at android.app.ActivityThread.main(ActivityThread.java:5221)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at java.lang.reflect.Method.invoke(Native Method)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at java.lang.reflect.Method.invoke(Method.java:372)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
12-30 21:58:27.841: E/AndroidRuntime(14193):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
编辑:所以我花了一整夜的时间搞乱这个,我真的开始觉得我无法解决它。我从eclipse中删除了我的项目并重新导入了它。删除所有依赖项并读取它,我似乎找不到任何解决方法。如果有人对我有任何见解,我会非常感激。

编辑2:稍微移动一下后,我仍然得到上述错误,但也在下面。希望它有助于解决问题。

01-01 17:09:24.964: I/art(11130): Rejecting re-init on previously-failed class java.lang.Class<src.common.Parser$1>

编辑3: 好的我取得了一点进展。

我在Java中创建一个具有匿名内部类的静态对象。这就是$ parser错误。 我将类移动到一个名为SinkImplementation的新类中,并创建了一个新对象。错误消息现在更改为:

`01-01 20:21:33.859: E/AndroidRuntime(32547): java.lang.NoClassDefFoundError: src.common.SinkImplementation`

所以出于某种原因,这堂课给我带来了一些问题。我的sinkImplementation类实现了Sink,它来自Open Street Map提供的.jar文件。依赖关系似乎都没问题,我正在努力进一步解决这个问题。

0 个答案:

没有答案