具有相同构建类型的多个模块

时间:2014-10-22 14:00:20

标签: android build gradle android-gradle

我有一个带有两个模块的gradle android项目:

  • 磨损
  • 应用程序(这是手机应用程序)

在我的gradle配置中,我有不同的构建类型。默认值(调试和发布,每个都有自定义设置),dev和beta版本类型(也有自定义签名,自定义proguard和自定义applicationIdSuffix。

我现在想要做的是使用例如buildType beta(gradle clean assembleBeta)构建应用程序包。这开始构建测试版的应用程序,看到它具有依赖性,并开始构建磨损。但这是问题所在。磨损模块使用发布版本类型构建,而不是用于启动构建的相同beta版本类型。

两个模块上的自定义构建类型配置完全相同,因此手动构建具有beta构建类型的磨损模块确实有效。但是,使用内置beta并在app模块内部打包的磨损模块也是使用beta构建的。不可行。

我是如何实现这一目标的?

1 个答案:

答案 0 :(得分:1)

如果可以将构建变体从一个项目连接到另一个项目,我就不知道答案。

但是这里有解决方法。您可以构建具有依赖性的app而不是项目,但已经构建了apk(https://developer.android.com/training/wearables/apps/packaging.html)。因此,您必须单独构建磨损应用程序变体,并将该工件包含在您的应用程序工件中。

dependencies {
  ...
  wearApp files('/path/to/wearable_app.apk')
}

<强>更新 实际上有可能:

productFlavors {
        dev {
        }

        prod {
        }
    }
...
devWearApp project(path: ':wearable', configuration: 'devRelease')
prodWearApp project(path: ':wearable', configuration: 'prodRelease')

Muzei app https://github.com/romannurik/muzei/blob/master/main/build.gradle

的致谢