我正在尝试在应用中使用另一个项目的类。在Eclipse中,我在Java Build Path下的项目属性中添加了另一个项目,在Libraries下添加了项目的类文件夹。在Referenced Libraries的Package Explorer中,referencend类在(默认包)下可见。
在编写代码时,我可以毫无问题地使用引用的类,并且编译应用程序不会引发警告或错误,但是当应用程序启动时,logcat会显示以下内容:
dalvikvm(16174): Could not find class 'de.project.myproject1.myclass', referenced from method de.project.myproject2.myActivity.onCreate
AndroidRuntime(15570): FATAL EXCEPTION: main
AndroidRuntime(15570): java.lang.NoClassDefFoundError: de.project.myproject1.myclass
AndroidRuntime(15570): at de.project.myproject2.myActivity.onCreate(KeyGenActivity.java:45)
AndroidRuntime(15570): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
AndroidRuntime(15570): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
AndroidRuntime(15570): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
AndroidRuntime(15570): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
AndroidRuntime(15570): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
AndroidRuntime(15570): at android.os.Handler.dispatchMessage(Handler.java:99)
AndroidRuntime(15570): at android.os.Looper.loop(Looper.java:123)
AndroidRuntime(15570): at android.app.ActivityThread.main(ActivityThread.java:4627)
AndroidRuntime(15570): at java.lang.reflect.Method.invokeNative(Native Method)
AndroidRuntime(15570): at java.lang.reflect.Method.invoke(Method.java:521)
AndroidRuntime(15570): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
AndroidRuntime(15570): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
AndroidRuntime(15570): at dalvik.system.NativeStart.main(Native Method)
ActivityManager( 971): Force finishing activity de.project.myproject2/.myActivity
ActivityManager( 971): Activity pause timeout for HistoryRecord{4407ee10 de.project.myproject2/.myActivity}
所以有人提示,如何解决问题,我整整一天都没有解决方案?
答案 0 :(得分:2)
我建议尝试将Eclipse项目导出为jar,并将jar添加到Android项目的构建路径中。否则,如果您可以控制其他Eclipse项目,那么请尝试创建Android Library project并将代码移动到该项目中。
最后,您应该能够将Eclipse项目中的源添加为Android项目中的路径。这样,Android项目将编译并包含源。
答案 1 :(得分:2)
您不需要在任何地方添加其他项目的类文件夹,这对我来说听起来不对。我猜这就是为你搞砸了......
据我记得(我必须这么做一段时间)从另一个项目中使用该类的最简单方法是: 1.将其他项目添加到构建路径(Java Build Path-> Projects选项卡 - > Add ...) 2.确保将其他项目作为构建过程的一部分导出(Java Build Path-> Order and Export选项卡 - >勾选列表中显示的其他项目。)
另一种方法是将另一个项目作为库引用。可以像Elevine建议的那样,或者只是将另一个项目编译成jar并引用该文件。