我的Android应用程序在其构建路径中包含所需的Java项目。但是,它在运行时抛出NoClassDefFoundError,就像配置错误的“lib”文件夹一样。
有没有办法在构建路径中包含此项目而不会导致运行时错误?
我知道我可以将它用作外部jar,但我强烈希望它是应用程序构建路径上的另一个项目。这样,每次我对它进行一些改动时,我都可以避免重新编译jar的麻烦。
这是我得到的确切logcat消息:
11-09 20:06:00.871: E/AndroidRuntime(1699): FATAL EXCEPTION: main
11-09 20:06:00.871: E/AndroidRuntime(1699): java.lang.NoClassDefFoundError: reproducers.SelectionReproducer
11-09 20:06:00.871: E/AndroidRuntime(1699): at com.gamma.MainActivity.onCreate(MainActivity.java:37)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.Activity.performCreate(Activity.java:5008)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.ActivityThread.access$600(ActivityThread.java:130)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.os.Handler.dispatchMessage(Handler.java:99)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.os.Looper.loop(Looper.java:137)
11-09 20:06:00.871: E/AndroidRuntime(1699): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-09 20:06:00.871: E/AndroidRuntime(1699): at java.lang.reflect.Method.invokeNative(Native Method)
11-09 20:06:00.871: E/AndroidRuntime(1699): at java.lang.reflect.Method.invoke(Method.java:511)
11-09 20:06:00.871: E/AndroidRuntime(1699): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-09 20:06:00.871: E/AndroidRuntime(1699): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-09 20:06:00.871: E/AndroidRuntime(1699): at dalvik.system.NativeStart.main(Native Method)
我在输入这个时发现了答案,但对于像我这样的菜鸟,它并不是很明显。所以,我仍然会问这个问题并发布解决方案。希望这有帮助!
答案 0 :(得分:3)
解决方案是将所需项目配置为“导出”,这可以在Eclipse中完成,如下所示:
步骤4将项目标记为“已导出”。这意味着它对需要该项目的项目可见,并且出于某种原因,这使ADT感到高兴。
另一方面,我的Eclipse(Helios)版本甚至没有显示复选框的功能 - 我必须在official Eclipse documentation上查找。