如何生成包含所有Asset Packs资产的Galaxy版APK?
生成包含Asset Packs的Galaxy版APK解决方案
要让Galaxy版APK包含所有Asset Packs资产,核心是调整Asset Pack的分发模式为嵌入(embedded),并针对Galaxy的构建变体正确配置依赖,以下是具体步骤:
1. 配置Asset Pack模块的分发模式
在你的Asset Pack模块(比如:play_asset_test)的build.gradle文件中,强制设置分发类型为embedded——因为Galaxy Store不支持Google Play的动态Asset Delivery机制,必须将资产直接打包进APK:
android { assetPack { packName = "play_asset_test" // 需与主应用引用的名称一致 dynamicDelivery { deliveryType = "embedded" } } // 若需区分Play Store和Galaxy Store的不同分发逻辑,可通过产品风味配置: productFlavors { galaxy { assetPack { dynamicDelivery { deliveryType = "embedded" } } } play { assetPack { dynamicDelivery { deliveryType = "on-demand" // Play Store保留按需下载 } } } } }
2. 主应用模块绑定Asset Pack
在主应用的build.gradle文件中,针对Galaxy的构建变体(风味或构建类型)明确声明依赖的Asset Pack:
android { // 假设你用productFlavors区分Galaxy和Play版本 productFlavors { galaxy { // 绑定Asset Pack到Galaxy风味 assetPacks = [":play_asset_test"] } play { // Play版本按需下载,可保留原有配置 assetPacks = [":play_asset_test"] } } // 或者针对特定构建类型配置(比如galaxyRelease) buildTypes { release { if (name.contains("Galaxy")) { assetPacks = [":play_asset_test"] } } } }
3. 执行构建命令
直接针对Galaxy的目标变体执行构建,无需额外的-PincludeAssets参数:
./gradlew assembleGalaxyArm64Release
4. 验证打包结果
用Android Studio的APK Analyzer打开生成的APK,检查assets/目录下是否包含Asset Pack中的所有文件;或通过命令行解压APK确认资产存在:
unzip -l app-galaxy-arm64-release.apk | grep "play_asset_test"
常见问题排查
- 若资产未打包:检查Asset Pack模块的
deliveryType是否确实设为embedded,主应用的assetPacks配置是否在正确的变体下。 - 构建报错:确认Asset Pack模块的
packName与主应用引用的名称完全一致,且模块已正确添加到项目settings.gradle中。
内容的提问来源于stack exchange,提问作者Kavyasri K
相关产品推荐
相关产品推荐

