Android Studio Gradle - 设置模块构建变体

9
我正在设置一个项目,其中涉及一个模块的依赖。我已经成功地生成了APK文件。我所做的就是添加

compile project(':ModuleName')

然而,我想知道是否可以具有构建差异的模块依赖关系。 因此,[项目:调试] 依赖于 [模块:调试],而 [项目:发布] 依赖于 [模块:发布] 谢谢!
2个回答

8

关于Marcus的回答的更新:

我不知道从哪个版本的Gradle / Android Studio开始,但现在可以这样做:

更新:publishNonDefault现已弃用,不再需要。只需使用下面的配置即可。

###库的build.gradle:

android {
    ...
    publishNonDefault true
}

App的build.gradle文件:

dependencies {
    debugCompile project(path: ':baseApp', configuration: 'debug')
    releaseCompile project(path: ':baseApp', configuration: 'release')
}

在Android Studio中更改其中一个构建变体将会改变另一个构建变体。


你好Diolor,解编一个名为“BaseExtension”的类后,发现以下内容: public void setPublishNonDefault(boolean publishNonDefault) { this.logger.warn("publishNonDefault已经被弃用,不再起作用。现在所有变体都会被发布。"); } - Sergio
嗨@Sergio。是的,publishNonDefault几个月前已被弃用。我更新了答案。谢谢! - Diolor

3

目前,默认情况下,无论您选择何种应用程序构建类型,Gradle工具链仅在发布变体中构建库。有一些建议的解决方法来解决这个问题,但它们大多涉及您的构建配置,而不是依赖项包含的任何内容。

我能想到最接近您想要的示例是执行以下操作:

dependencies {
    flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
    flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}

但是这是通过构建 flavor 而不是构建变体来实现的。

现在这样已经足够好了。希望以后我们能获得更多的控制权。谢谢。 - SuperB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接