Android库: resources are merged,代码不是

标签 android eclipse android-2.2-froyo

我正在尝试在 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/

相关文章:

java - 安卓、Java : Bundles & Views for Fragments

java - 为 eclipse 安装 jProbe 插件

eclipse - Eclipse 的坩埚连接器?

Android(<=2.2)大文件下载使用android market apk扩展下载器库

android - JAVA_HOME 与 Android SDK 冲突

android - 给定中心和半径,如何在 Google map 中获取圆的 LatLngBounds?

适用于手机和电视的 Android 通用应用程序 (Lollipop)

android - Android 增强现实应用程序的图像识别

java - 无法在 ubuntu 16.0.4 TLS 上启动 tomcat 8

android - 停止 Android 操作系统自动更新