Android Studio - flavor 可以与其他 flavor 共享代码吗?

标签 android android-studio android-build

在我当前的应用程序中,我有 2 个构建,我们称它们为 build 1build 2。我知道两种风格可以共享公共(public)代码/资源,但也可以有单独的代码和资源,如下所示:

Two Flavours Diargram

我想做的是扩展 build 2 以便它与另一个构建共享一些代码(例如 build 3)。要么共享一些代码,例如:

Two Flavours Sharing Code

这将是 build2 和 build 3 共享一些代码/资源,同时还能够拥有自己独特的代码集。 或者:

Build 3 Extending Build 2

此处,build 3 正在扩展 build 2,以便 build 2 中的所有代码和资源在两个构建中都可用,但 build 3 也可以拥有自己独特的代码/资源。

我认为扩展 build 2 是最好的方法(如果可能的话),但是任何建议或为我指明正确的方向将不胜感激。我已经花了 6 个多小时在互联网上搜索,但无济于事。

最佳答案

对此没有很好的支持。如果你真的想这样做,你可以探索一些带有符号链接(symbolic link)的 hackery 来尝试使不同的风格有效地共享文件夹,但这会使源代码管理变得有点奇怪,我不能确定它不会引起微妙的问题在构建中。

我鼓励您不要尝试在构建系统中做很多诡计,因为从长远来看,这会使您的应用程序更难编写和维护,尤其是目前 IDE 没有很好的设施处理跨产品风格的代码(例如,如果您重构代码,则无法将重构应用于非 Activity 产品风格;您一次只能处理一个)。

更好的方法是采用Build 2Build 3 的通用内容,并将其提取到一个 Android 库模块中,该模块是这些风格的依赖项,但是不适用于 Build 1 风格。不同的产品风格可以有不同的依赖关系,并且该机制得到支持并且运行良好。

关于Android Studio - flavor 可以与其他 flavor 共享代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904557/

相关文章:

java - 无法从 android php 连接插入 MySql Db

android - 书法库上的 NoClassDefFoundError

android - 如何在整个项目中使用相同的库?

安卓/MonoDroid : Can I load a AXML file into a View?

android - 从服务接收触摸事件(解决方案?)

php - 将字符串从应用程序发送到服务器

android-studio - Android Studio 插件中的 NullPointerExceptionon Android 支持

android - 分区表无效或损坏

java - setMyLocationEnabled(true) 无响应,刷新速度慢

android - 安装 NativeScript 的问题