我正在尝试在 Eclipse 中设置一个具有 Android 库项目依赖项的 Android 应用程序。我已经建立了一个名为 AnTest 的项目和一个名为 AnLib 的图书馆项目。我在 AnTest 的项目属性中提供了对 AnLib 的引用。现在我试图引用 AnTest 的一些库代码(静态公共(public)方法)。 Eclipse 抛出“com.anlib.Hello 无法解析为类型”。
并不是引用悬而未决——我可以看到资源已正确合并。但是在 AnTest 中,包 com.anlib 中唯一的类是“R”。
拜托,我做错了什么?必须缺少一些非常基本的步骤......
编辑:我已将 AnLib 添加到 AnTest 项目属性中的 Java 构建路径/项目。现在它可以编译,但是运行会抛出一个 NoClassDefFoundError 异常...
最佳答案
仔细查看示例项目 (TicTacToe) 后,我注意到类路径下有一些东西。它是库源的链接文件夹。应用程序的项目属性,Java 构建路径,在“源”下单击“链接源”,提供库\src 的路径。
毕竟没有魔法。
编辑:默认情况下也不会选择 NDK(基于 JNI 的 native )库。必须为库项目中的各个库建立一个名为“libs”的链接文件夹。
EDIT2:本地库的行为似乎取决于 ADT 和/或 Eclipse 的版本。 Assets 也没有合并,但实际上记录了后一点。
EDIT3:在最新的 Android 工具下,库不再作为链接源实现。请忽略此答案;这在当时是真实且相关的,但现在不是了。
关于Android库: resources are merged,代码不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073160/