我需要帮助解决Android SDK中的项目依赖问题。
我有以下项目: “同步”(仅限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)。
我尝试清理所有项目,并使用Android工具 - >在Agonis和Dragonis上修复项目属性无济于事。
我忽略了什么吗?
答案 0 :(得分:0)
将jar库放在libs文件夹中,并将其添加到java构建的路径中
右键单击文件 - >构建路径 - >添加到构建路径
希望它有所帮助。
答案 1 :(得分:0)
我明白了。
Sync Java-only库正在编译为1.7个Java字节代码。 Android仅支持将Java 1.6字节代码转换为DEX。
滚动到控制台的顶部,小孩。
答案 2 :(得分:0)
您可以通过命令行工具解决此问题。你可以创建/更新Dragonis和Agonis android项目 - 一个作为应用程序,另一个作为库。见http://developer.android.com/tools/projects/projects-cmdline.html
您可以轻松地从D - >设置依赖关系。使用命令行工具,如引用库项目一节中所示。在此阶段,D的构建会自动触发A的构建。
现在修改A的build.xml - 在预编译阶段包含依赖:build和copy Sync.jar(查看build.xml内部以查找占位符)。可以通过使用subant启动子ant进程来完成构建和复制任务。见http://ant.apache.org/manual/Tasks/subant.html
在此阶段,如果触发ant build,则所有依赖项都可以在命令行上正常工作。现在你也可以通过从源代码导入android项目Dragonis来使用eclipse。
答案 3 :(得分:0)
来自" Sync"的项目属性设置" Java编译器" - > " JDK Complience"到1.6。重建并享受!