如何在Android项目中包含Java项目?

Séb*_*ien 12 java eclipse android

我正在使用Eclipse开发Android棋盘游戏.我在Android项目中开发了UI.

另一方面,我在常规Java项目中开发了AI,因为我希望能够在没有Android模拟器的所有约束的情况下测试它(我没有找到使用我的Windows JVM运行代码的任何其他方法).

现在,我希望"加入"两个项目(独立工作正常),即使用UI中的AI Java类.

这是我尝试过的:

在我的Android项目Properties > Projects References中,我勾选了Java项目.这允许我构建没有错误的Android项目(实例化AI对象).

但它在运行时因此错误而失败:

Could not find class 'my.package.AI', referenced from method my.otherpackage.UI.onStart
Run Code Online (Sandbox Code Playgroud)

将AI Java项目纳入我的Android项目的正确方法是什么?

(注意:我仍然希望能够开发和测试AI作为常规Java应用程序,因此我认为使用jar或将所有源代码复制到Android项目将不适合我的需求)

编辑:

我希望新的ADT v17可以解决问题,但事实并非如此.我几乎尝试了所有可用的选项,在我的Android项目中包含一个项目:

  • 添加或链接源文件夹
  • 添加项目(Java构建路径>项目选项卡)
  • 添加类文件夹或库(Java构建路径>库选项卡)
  • 将所有先前导入的projets /库标记为已导出

允许编译和运行而没有错误的唯一方法是将Java项目的JAR添加到Android项目构建路径.

yor*_*rkw 10

Projects References仅将依赖项目源代码(您的AI项目)添加为软(可能是一个更准确的单词)参考,您的AI项目不会添加到您的Android项目构建路径中.因此,当Eclipse构建您的应用程序时,实际的ai.jar不会导出到最终的apk中.

您应该将AI项目添加到Android项目构建路径中:

  1. 右键单击您的android项目,在Projects选项卡(构建路径中的必需项目)中选择Build Path - Configure Build Path,在此处添加您的AI项目.
  2. 然后在"订购和导出"选项卡(构建类路径顺序和导出的条目)中,勾选列表中出现的新添加的AI项目.

第2步可能是可选的,这应该在Android项目中添加AI项目作为参考,并在Eclipse构建Android项目时将ai.jar导出到final.apk.

ADT 17.0.0更新:

Android Dev Team刚刚发布了带有ADT 17.0.0的SDK r17,它声称现在可以正确处理这些用例:

Eclipse特定的更改

名为"Library Projects"的动态类路径容器已重命名为"Android Dependencies",因为它现在不仅包含Library Projects.

现在,容器也将填充由Library Projects引用的仅Java项目.如果这些Java项目也引用其他Java项目和/或jar文件,它们将自动添加(也支持通过用户库引用的jar文件).

重要说明:仅当引用设置为在引用项目中导出时才会发生这种情况.请注意,将项目或jar文件添加到项目构建路径时,这不是默认设置.始终导出库项目(及其libs/*.jar文件的内容).此更改仅影响仅Java项目及其自己的jar文件.

同样,检测并删除重复项(项目和jar文件).

更多链接.


Nic*_*tch -1

不要将其添加到项目引用区域,而是进入 Android 窗格(在“项目属性”中),向下滚动到底部,然后将其添加到“库”下。

这有时有效,但有时会产生奇怪的 Eclipse 问题(不知道为什么),在这种情况下,将 jar 直接复制到项目中似乎效果最好。