Android Studio默认在build.gradle中构建什么产品风味?


160

我们有一个使用新的Gradle构建系统的Android项目,并使用Android Studio作为开发工具。当在中指定了几种产品口味时build.gradle,我们注意到Android Studio会按字母顺序构建第一个。有没有办法告诉Android Studio在开发过程中仅构建和测试特定的产品风格?

Answers:


334

在Studio窗口的左下方,有一个停靠的视图,称为“ Build Variants”。

打开它,然后选择要使用的任何变体。这将影响构建的变体以及已启用的源文件夹,这将推动代码和资源编辑器的完成。


15
凉。有没有一种方法可以在初始导入时自定义首选哪个?

3
我不这么认为。我可以问问做这件事的工程师是否可以添加它。但是,如果您有口味,则每个项目可能会有所不同。
Xavier Ducrohet 2013年

34
变体是风味和构建类型的组合。您只能部署变体。您永远都无法建立仅是口味的apk。
Xavier Ducrohet

5
如果您感兴趣,可以使用命令行来构建指定的变体:./gradlew assemble <Flavor1> <Flavor2> <...> <BuildType>,例如assembleGooglePlayRelease。你可以编译和安装连接的设备或使用仿真器上:./gradlew安装<Flavor1> <Flavor2> <...> <BuildType>
Deepscorn

5
但是,默认情况下,Android Studio会使用哪种产品风格来构建应用程序?
Malwinder Singh


4

是的,有一种方法:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

否则,倾向于使用带有调试构建类型的变体。

它是在Android Studio 3.5中添加的,请参阅功能请求

“包含在Android Gradle插件3.5.0-alpha08和Android Studio 3.5 Canary 8 [3.5.0.7]中。

如提交消息中所述,针对使用较旧AGP的项目和没有显式设置的项目的启发式方法也已更新,以支持带有构建类型调试的变体。


-1

您可以在启动Gradle-aware Make之前的小节中指定运行命令。

您可以按以下方式列出所有gradle任务 gradlew tasks

在此处输入图片说明


我尝试了此方法,虽然它确实确实只能构建一种风味,但Android Studio仍只会启动所选的变体。更糟糕的是,如果我选择的活动不在选定的变体中,那么我会收到一条令人困惑的错误消息:“该活动必须导出或包含一个意图过滤器”。一旦更改了构建平衡选择,该错误就会消失。
达格玛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.