2011-10-31 60 views
0

我想在应用程序中使用另一个项目的类。在Eclipse中,我在Java Build Path项目属性下添加了另一个项目,在Libraries下添加了项目的类文件夹。在引用库的包资源管理器中,引用类在(默认包)下可见。从另一个项目导入类不起作用

在写代码,我可以使用引用的类没有问题,而且编译应用程序抛出没有警告或errrors,但应用程序启动时,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} 

所以有一个人的提示,如何解决这个问题,我花了整整一天没有解决方案?

回答

2

我会建议尝试将Eclipse项目导出为jar,并将jar添加到您的Android项目的构建路径。否则,如果您可以控制另一个Eclipse项目,则尝试创建一个Android Library project并将代码移入该项目中。

最后,您应该能够将Eclipse项目中的源代码添加为Android项目中的路径。这样,Android项目将编译并包含源代码。

+0

我已经将该类导出为jar。这种方式唯一令人讨厌的事情是,每当我在主项目中更改课程时,我都必须重复它。 – Soenke

+0

我建议的其他方法肯定会克服这个问题。 – elevine

2

你不应该需要在任何地方添加其他项目的类文件夹,这听起来不对。我猜这是为你搞的东西......

据我记忆(这是一段时间,因为我不得不这样做)从另一个项目中使用类最简单的方法是: 1 。将其他项目添加到构建路径(Java构建路径 - >项目选项卡 - >添加...) 2.确保另一个项目作为构建过程的一部分导出(Java Build Path-> Order and Export选项卡 - >勾选出现在列表中的其他项目)。

另一种方法是将另一个项目作为库引用。无论是高层建议,还是仅仅通过将其他项目编译为jar并引用该文件。

+0

这对我有用。我也比较喜欢这个解决方案,因为它没有任何与Android相关的东西,所以使得这个项目成为一个Android库。 – szeryf

相关问题