android - 我可以在不使用库的情况下在 Android 项目之间共享代码和资源吗?

标签 android eclipse android-build

在 Android 项目之间共享代码和资源的标准建议是使用库。就我个人而言,如果 (a) 共享代码更改很多,或者 (b) 您的计算机速度不够快,我发现这种方法效果不佳。

我也不想部署多个 APK,这在我使用依赖项目(即 Java 构建路径、项目选项卡)时似乎是必需的。

另一方面,使用 Eclipse 链接源代码功能共享源代码文件夹效果很好(Java 构建路径、源选项卡、链接源按钮),但对于这两个问题:

1) 我不能使用相同的技术来共享资源。我可以创建指向资源父文件夹的链接,但事情变得不稳定并且共享资源不会被编译(我使用的是 ADT 21)。

2) 然后我决定将共享资源复制到每个项目中,但这也不起作用。共享代码无法导入其资源的副本,因为它不知道使用它的项目的包名。我一直使用的解决方案是动态访问资源,但随着资源数量的增加,这变得很麻烦。

因此,我需要 (1) 或 (2) 的解决方案,否则我将不得不返回到图书馆项目。 (或者也许还有其他我没有想到的选择?)

最佳答案

您真正的问题是 (2)。修复 (1) 会消除一些复制,但您仍然会遇到 (2) 的问题。

不幸的是,这真的不可能。有相当多的花哨的步法可以继续使用库项目使多个包成为可能,并且没有库项目就没有好的方法来获得相同的结果。项目的 res/ 中的任何内容都可以通过该项目的 R 类访问,包括您复制的资源。

The solution I've been using is to access the resources dynamically

我使用 getIdentifier() 将它翻译成了你。这当然有效。另一种方法是让托管应用程序提供资源 ID 作为库代码的参数——这是 Android SDK 本身使用的模式。这在运行时比基于反射的 getIdentifier() 更快,并且它为托管应用程序提供了更多的灵 active ,但您最终会根据需要向您的方法和构造函数添加一堆参数以提供各种项目特定的 R 值。

关于android - 我可以在不使用库的情况下在 Android 项目之间共享代码和资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536452/

相关文章:

android - 在 EditText 中输入数据并在不按回车的情况下响应

android 客户端中的 java.io.StreamCorrupted Exception`

java - 将 JSON URL 传递给 java Restful WebService

java - 在 OS X 10.9 Mavericks 上安装 Java 源代码

Eclipse:使标签可见,空间不可见

android - 使用 CSV/TXT 文件中的名称列表(带有属性)动态生成 productFlavors 和 sourceSets

android - Gradle编译错误 "No Signature of Method"

android - Google Play 上是否还使用了特色图片和宣传图片?

java - 犹豫不决要在 GitHub 上上传哪些文件

Android Studio 2.1.1 运行旧的 .apk 文件