全部。我创建了一个 android 库项目,当我从主项目中引用它时它可以完美运行。但是当我单独构建库项目时,它不包含 R.java 和资源。有没有办法用资源和 R.java 构建一个库项目?
问问题
5207 次
2 回答
5
现在不可能了。
现在我们可以通过以下步骤创建一个仅二进制库项目:
- 使用您的源代码等创建一个 Android 库项目——这是您的主项目,您将从该项目中创建库项目的一个版本以进行分发
- 编译 Java 源代码(例如,ant compile)并将其转换为 JAR 文件
- 创建一个分发Android库项目,资源与主库项目相同,但没有源代码
- 将 JAR 文件放在分发 Android 库项目的 libs/ 目录中 生成的分发 Android 库项目将包含主项目所需的一切,只是没有源代码。
此解决方案有一些限制:
- 我们仍然必须运送资源。
- 我们必须重写我们的代码以避免使用 R. 值,因为它们是错误的。我们将不得不使用 getResources().getIdentifier() 和/或反射来查找所有资源 ID。
于 2012-03-11T10:25:23.087 回答
5
我使用 Eclipse 并且从未独立手动构建我的 Android 库项目,但我认为官方开发指南中所述的开发注意事项应回答您的问题:
每个库项目都创建自己的 R 类
当您构建依赖的应用程序项目时,库项目将被编译并与应用程序项目合并。每个库都有自己的 R 类,根据库的包名称命名。从主项目和库项目生成的 R 类在所有需要的包中创建,包括主项目的包和库的包。
使用官方开发指南库项目引用的另一个注释进行更新:
但是,库项目与标准 Android 应用程序项目的不同之处在于,您不能将其直接编译为自己的 .apk 并在 Android 设备上运行。同样,您不能将库项目导出到自包含的 JAR 文件,就像对真正的库所做的那样。相反,您必须通过在依赖应用程序中引用库并构建该应用程序来间接编译库。
于 2012-03-11T20:29:33.530 回答