使用bundletool安装Play Asset Delivery asset packs失败,如何本地测试?
Play Asset Delivery 本地测试解决方案
一、install-time asset pack 安装失败修复步骤
- 首先确认asset pack模块build配置中分发类型设置正确,distribution块必须明确指定为install-time,避免误配置为fast-follow/on-demand。
- 运行bundletool安装命令时必须添加
--local-testing参数,默认安装模式下bundletool不会主动推送asset-slices目录下的资源包,正确安装命令如下:java -jar bundletool.jar install-apks --apks=output.apks --local-testing - 应用启动初始化阶段需启用本地测试模式,在Application的attachBaseContext方法中添加代码
PlayAssetDelivery.enableLocalTesting(context),否则应用无法识别已安装的本地asset pack资源。 - 安装完成后可执行
adb shell pm path 你的应用包名验证,输出结果中如果包含对应asset pack的apk路径,说明安装成功。
二、资源频繁变更时的最优本地测试流程
- 首次打包生成带本地测试标记的apks:执行
java -jar bundletool.jar build-apks --bundle=你的应用.aab --output=output.apks --local-testing,后续仅在主应用代码变更时才需要重新生成全量apks。 - 仅asset pack资源变更时,不需要重新打包主应用:直接更新asset pack目录下的资源后,单独生成对应asset pack的apk,通过
adb push命令推送到设备应用私有目录/data/data/[应用包名]/files/assetpacks/[asset pack名称]/下,应用运行时会优先读取该目录的最新资源。 - 日常调试可通过
adb logcat -s PlayAssetDelivery查看资源加载状态日志,快速定位资源加载异常问题,无需全量打包验证。 - 团队协作测试时,直接共享生成好的带local-testing标记的apks即可,所有测试人员安装时添加--local-testing参数即可正常加载所有asset pack资源,无需走商店分发流程。
内容的提问来源于stack exchange,提问作者krojew
相关产品推荐
相关产品推荐

