我正在尝试在Eclipse中设置一个依赖于Android库项目的Android应用程序。我设置了一个名为AnTest的项目和一个名为AnLib的库项目。我已经在AnTest的项目属性中提供了对AnLib的引用。现在,我尝试引用AnTest中的一些库代码(一个静态公共方法)。Eclipse抛出“无法将com.anlib.Hello解析为类型”。
这并不是说引用是悬而未决的-我可以看到资源正确地合并了。但是在AnTest中,com.anlib包中唯一的类是"R“。
我到底做错了什么?一定是遗漏了一些非常基本的步骤..。
编辑:我已经在AnTest项目属性中的Java build path/Projects中添加了AnLib。现在它可以编译了,但是运行时会抛出一个NoClassDefFoundError异常...
发布于 2010-06-21 23:14:33
在仔细查看示例项目(TicTacToe)之后,我注意到类路径下有一些东西。它是一个链接到库源代码的文件夹。应用程序的项目属性,Java构建路径,在"Source“下单击"Link source",提供库\src的路径。
毕竟没有什么魔力。
编辑: NDK (基于JNI的本机)库在默认情况下也不会被选中。必须建立一个名为" libs“的链接文件夹,链接到库项目中的各个库。
EDIT2:本机库的行为似乎取决于ADT和/或Eclipse的版本。此外,资产不会合并,但后面这一部分实际上是有文档记录的。
EDIT3:在最新的Android工具下,库不再作为链接的源代码实现。请忽略这个答案;它在当时是正确的和相关的,但现在不是了。
发布于 2010-06-19 10:37:46
我有这个设置,但在“库”项目中没有资源。我的主项目是一个Android项目,但“库”项目只是一个标准的Java项目。这似乎工作得很好。
在Android主项目的构建路径("Projects“选项卡)下,我添加了库项目。
库项目的.project文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>DataExchange</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>安卓项目的.project文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Project</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>我不记得在设置这个的时候做了什么特别的事情。
https://stackoverflow.com/questions/3073160
复制相似问题