2

我需要有关 Android SDK 中的项目依赖问题的帮助。

我有以下项目:“Sync”(仅 Java 项目)“Agonis”(Android 库项目)“Dragonis”(Android 应用程序项目)

Agonis 对 Sync 有项目依赖,Dragonis 对 Agonis 有项目依赖,如下所示:

Dragonis->Agonis->同步

我已正确使用 Properties->Android->Library 对话框将 Agonis 添加为 Android 库。我已经在 Agonis 构建路径设置中导出了 Sync 项目:

http://i.stack.imgur.com/GsQIR.png

在 Dragonis 项目中,我在“Android Dependencies”虚拟文件夹中看到了 Agonis 和 Sync:

http://i.stack.imgur.com/EhH8L.png

从这里开始,我希望一切都能正常工作,但事实并非如此。

我可以启动应用程序,但是一旦我从 Agonis 项目 (com.mob.agonis.AgonisServer) 实例化一个类型,我就会收到 NoClassDefFoundError。如果重要的话,我尝试实例化的 Agonis 类型扩展了 Sync 项目 (com.mob.sync.Server) 中的类型。

我尝试清理所有项目,并在 Agonis 和 Dragonis 上使用 Android Tools->Fix Project Properties 无济于事。

我忽略了什么吗?

4

4 回答 4

0

将jar库放入文件夹libs中,并添加到java构建路径中。
右键单击文件->构建路径->添加到构建路径
希望它有所帮助。

于 2012-10-12T02:26:09.603 回答
0

我想到了。

仅 Sync Java 库正在编译为 1.7 Java 字节码。Android 仅支持将 Java 1.6 字节码转换为 DEX。

孩子们,滚动到控制台顶部。

于 2012-10-12T04:59:38.413 回答
0

您可以通过命令行工具解决此问题。您可以创建/更新 Dragonis 和 Agonis android 项目 - 一个作为应用程序,另一个作为库。请参阅http://developer.android.com/tools/projects/projects-cmdline.html

您可以使用命令行工具轻松设置从 D -> A 的依赖关系,如引用库项目部分所示。在这个阶段,D 的构建会自动触发 A 的构建。

现在修改 A - 的 build.xml 以在预编译阶段包含对 : build 和复制 Sync.jar 的依赖(查看 build.xml 内部以找到占位符)。可以通过使用 subant 启动子 ant 进程来完成构建和复制任务。见http://ant.apache.org/manual/Tasks/subant.html

在这个阶段,如果您触发 ant build,您的所有依赖项都可以在命令行上正常工作。现在您还可以通过从源代码导入 android 项目 Dragonis 来使用 eclipse。

于 2013-11-01T14:52:21.057 回答
0

从“Sync”的项目属性中,将“Java Compiler”->“JDK Complience”设置为 1.6。重建和享受!

于 2014-03-11T12:08:00.187 回答