Android Studio 在 build.gradle 中默认构建的 Product Flavor 是啥?
Posted
技术标签:
【中文标题】Android Studio 在 build.gradle 中默认构建的 Product Flavor 是啥?【英文标题】:What Product Flavor does Android Studio build by default in build.gradle?Android Studio 在 build.gradle 中默认构建的 Product Flavor 是什么? 【发布时间】:2013-07-13 11:17:00 【问题描述】:我们有一个使用新 Gradle 构建系统的 android 项目,我们使用 Android Studio 作为开发工具。当build.gradle
中指定了多个产品风格时,我们注意到 Android Studio 会构建第一个按字母顺序指定的产品风格。有没有办法告诉 Android Studio 在开发过程中只构建和测试特定的产品风格?
【问题讨论】:
【参考方案1】:在最新的 android studio 上,在菜单栏上,转到 Build
> Select build Variant
,如果它是灰色的(禁用),请打开项目目录,然后打开 app
部分,然后再次转到该按钮。单击它后,它将在侧边栏上打开一个名为 Build Variants 的窗口,从那里您可以选择要构建的构建变体,然后单击调试,它将构建您选择的变体。
【讨论】:
【参考方案2】:实际上对我有用的是启用“Android Studio Preferences -> Experimental -> Only sync the active variant”。选择一次所需的构建变体后,AS会在重新打开或重新同步项目时保留选择的构建变体,基本解决了原来的问题。
AS/AGP v4.1。
【讨论】:
【参考方案3】:是的,有办法:
android
productFlavors
foo
isDefault true
另外,调试构建类型的变体更受青睐。
它是在 Android Studio 3.5 中添加的,见feature request:
“包含在 Android Gradle 插件 3.5.0-alpha08 和 Android Studio 中 3.5 金丝雀 8 [3.5.0.7]。
使用旧 AGP 的项目和不使用 AGP 的项目的启发式方法 显式设置也已更新,以支持具有 构建类型调试,如提交消息中所述。"
【讨论】:
isDefault 被声明为 final 并且没有可用的 setter。但是我们可以使用 isDefault.set(true) 还有:isDefault = true 或 isDefault true 也许这不适用于 gradle.kts 脚本或 smth - 在我们的项目中什么都不做【参考方案4】:您可以在启动 Gradle-aware Make 之前的部分中指定命令运行
您可以通过gradlew tasks
列出所有gradle任务
【讨论】:
我试过了,虽然它确实只构建了一种风格,但 Android Studio 仍然只会启动选定的变体。更糟糕的是,如果我选择了一个不在所选变体中的特定 Activity ,那么我会收到一条令人困惑的错误消息,指出“该活动必须被导出或包含一个意图过滤器”。一旦我更改了构建 bariant 选择,错误就会消失。【参考方案5】:目前似乎无法选择默认风味。 Android 问题跟踪器中有一个功能请求:
https://code.google.com/p/android/issues/detail?id=64917
您可以为请求加注星标/投票,因此它在 Android 开发工具积压中获得更高的优先级。
【讨论】:
此功能将在 Android Studio 3.5 中。不开玩笑 - 这花了 5 年时间来实施! (查看工单创建日期)【参考方案6】:在 Studio 窗口的左下方有一个名为“Build Variants”的停靠视图。
打开它并选择您要处理的任何变体。这将影响构建的变体以及启用的源文件夹,这将推动代码和资源编辑器中的完成。
【讨论】:
酷。有没有办法在初始导入时自定义它喜欢哪个? 变体是风味和构建类型的组合。您只能部署变体。你永远不能构建一个只是一种味道的 apk。 如果您有兴趣,可以使用命令行构建指定的变体:./gradlew assemble以上是关于Android Studio 在 build.gradle 中默认构建的 Product Flavor 是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 react-native run-android 运行时出现 React-Native 错误
Android 依赖 '..' 对于编译 (..) 和运行时 (..) 类路径有不同的版本
Android Gradle 插件AaptOptions 配置 ③ ( cruncherEnabled 配置 | cruncherProcesses 配置 )