当我学习 Android 开发(通过 Eclipse)时,让我继续感到沮丧的一件事是让引用 Android 库项目的 Android 应用程序项目可靠地工作。有时,应用程序项目由于缺少库中定义的类引用而无法构建,有时它会构建但随后在运行时崩溃,并且引用了库中定义的类,并带有错误链接
java.lang.NoClassDefFoundError: com.dave.customviewtestlib.LibTestClass
由 logcat 显示。
我正在使用 Android 开发者工具构建:v21.0.1-543035
我创建了一个工作区,其中包含最简单的 Android 应用程序项目,并引用了最简单的 Android 库项目。我应该如何在 Eclipse 中将它们绑定在一起?他们都自己建造得很好。然后我编辑 Android 应用程序项目的“Java 构建路径”。令人困惑的是,似乎有很多方法可以引用库项目。有时一种方法有效,然后它停止工作,另一种方法在开始工作之前不起作用。我应该
- 在 app 项目的 Java Build Path | 项目,“添加”库项目,或
- 在 app 项目的 Java Build Path | 库,“添加 Jar”并指向包含库的类和其他资源的 .jar,或
- 在 app 项目的 Java Build Path | 库,“添加类文件夹”并指向包含类的库项目的“bin”文件夹,或
- 在 app 项目的 Java Build Path | 源,“添加文件夹”并指向库项目的源文件夹,或
- 还有什么?
此外,还有神秘的 Java Build Path | 订单和导出选项卡。这意味着什么?
我还有一个相关的问题:这些所谓的 Android 库是像静态库(您在构建时引用它们并且代码被吸入,而在运行时它只是应用程序二进制文件的一部分),还是像动态库(它们可以单独安装在设备上)?我知道这都是Java,所有类都是由类加载器在运行时加载的,但我认为仍然有一个重要的区别。大多数教程和参考资料都如此愚蠢,获得答案是无望的。
任何帮助都将真正有助于减少我的烦恼:)