如何在Eclipse中将Java项目用于Android项目?

3
我正在编写一个Android应用程序,其中包含一些相对复杂的Java代码。在Android环境中验证其正确性有些困难。我希望能够在桌面环境下运行这段代码,以便更好地检查其输出结果,并将其用于我的Android应用程序。
我的解决方案是在Eclipse中创建三个不同的项目:一个Android项目和两个普通的(非Android)Java项目。其中一个Java项目包含我想要在Android中使用的复杂代码,另一个是用于验证前一个项目正确性的测试程序。后者已经在调试前者时很有用。
然而,到目前为止,我尝试在Android项目中使用Java项目时,在IDE中似乎可以工作,但实际运行Android应用程序时,无论我尝试访问哪个类,都会抛出NoClassDefFoundError异常。显然,该代码未重新编译为.dex文件,但原因是什么呢?
我可以详细解释我迄今为止所做的事情,但我不禁认为,我正在做的是相当标准和简单的事情,虽然我找不到任何人正在尝试我想做的事情。有人可以告诉我如何做到这一点吗?

你在清单文件中声明了所有的活动吗?我不明白为什么需要创建一个单独的项目。无论你使用哪个IDE,只要遵循Android文档docs,就应该足够简单地检查代码的正确性。没有代码很难知道具体发生了什么,但显然你的类没有定义在某个地方。 - codeMagic
在普通的 Java 项目中的代码不是 Android 代码。如果是,那么它肯定不能在普通的 Java 项目中存在。最多,我只会创建另一个 Android 项目并将其用作库项目。更有可能的是,我会将所有 Android 代码都保留在同一个项目中。验证代码正确性的内容不仅仅是查看你的代码,这就是为什么 Eclipse 不够好的原因。在我的情况下,我需要实际运行代码并使用 Android 环境中没有的工具查看其输出,因此需要桌面测试程序... - Jocko Homo
在Android项目中,您还需要将您的普通Java项目添加到“顺序和导出”列表中(属性-> Java构建路径->顺序和导出)。 - yorkw
2个回答

1
幸运的是,我找到了自己问题的答案,并想在这里分享一下,以帮助处于同样情况的其他人。事实证明,解决方法非常简单...
我已经尝试过的方法通常应该有效,这应该是一个很大的提示,因为我之前已经成功地做过这件事。你所需要做的就是,在你的Android项目的“属性> Java Build Path> 项目”下,将普通的Java项目添加到你的“构建路径所需的项目”中,然后在“属性> Java Build Path> Order and Export”下,在“构建类路径顺序和导出条目”列表中勾选同一项目的复选框,然后一切都应该正常工作。
从Eclipse中,你不需要做任何其他的设置就可以让它工作。只有当你从命令行编译时,你需要构建Java Jars并将它们导入库中,但我现在还没有这样做。

最后,这对我不起作用,因为我碰巧是在JDK 1.7兼容性下编译我的普通Java项目,而我的Android项目是在JDK 1.6下编译的。这通过控制台窗格上的输出进行验证,报告“Dx bad class file magic (cafebabe) or version。”当两个项目都在相同的兼容级别下编译时,此错误消息消失了,并且不巧的是,Android程序正常运行。

感谢所有试图帮助我的人,我希望这个答案对某个人有所帮助!


0

如果您将其他普通的Java项目转换为Android项目,并使用它来监视设备上的输出,这样不行吗?


很遗憾,我需要监控输出的工具只存在于我的桌面系统上。如果它们在Android上可用,我就会将所有Android代码放入同一个Android项目中并使用这些工具。这就是为什么我有两个普通的Java项目:一个用作库,可与Android项目或桌面项目一起使用,另一个是普通的桌面应用程序,可以使用我的桌面工具。 - Jocko Homo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接