每种产品风格的不同 android 资产包

问题描述

我希望 Android 应用程序的不同产品风格拥有自己的资产包(或者可能根本没有)。尝试过类似

android {
   productFlavors {
       one {
          assetPacks[":pack1"]
       }
       two {
          assetPacks[":pack2"]
       }
       three {
       }
   }
}

但这只是使用所有风格遇到的最后一行,因此所有风格都包含pack2。有什么建议吗?

解决方法

编辑: 我找到了适合我需求的解决方案(我猜它不优雅但它有效),也许你也可以使用这个@KasperPeeters。因为我们使用脚本构建应用程序并且我们为每个构建变体调用构建命令,所以我决定使用 Gradle 命令行参数来控制资产是否应包含在 aab 中(您应该能够轻松修改它以控制应包含哪些资产) .然后在应用模块的 build.gradle 中进行检查:

if (project.hasProperty("includeAssets")) { assetPacks = [":<you_asset_name>"] }

并使用我调用命令的资产构建 aab ./gradlew :app:bundle[Variant] -PincludeAssets


我正在寻找类似的东西。到目前为止,我的发现是资产文件始终包含在生成的 aab 文件中。如果您想控制安装在设备上时下载文件的风格,您必须使用除 install-time 之外的交付类型。如果可行,我会尝试 on-demand 并更新主题。