Android Studio 3.4.1使用bundletool转换AAB为APK失败求助
解决bundletool转换AAB到APK失败的问题
我来帮你搞定这个头疼的问题!从错误日志来看,核心问题是aapt2.exe崩溃退出(exit code -1073741701),同时还伴随临时文件删除失败的问题,这在Windows环境下大多是工具版本不兼容或者依赖库缺失导致的,下面是具体的解决方案:
1. 更新bundletool到兼容版本
你当前使用的bundletool是0.10.2,和Android Studio 3.4.1的版本匹配度不高——AS 3.4.x对应的bundletool建议使用0.14.0及以上版本,版本太老容易出现兼容性问题。
- 最简单的方式是直接用Android Studio内置的bundletool:它的路径一般是
C:\Users\<你的用户名>\AppData\Local\Android\Sdk\bundletool\bundletool.jar,这个版本和你的AS版本完全兼容,不用额外下载。 - 如果要手动下载,选择和AS 3.4.1兼容的bundletool版本(比如0.14.0),避免用太新或者太旧的版本。
2. 修复aapt2的依赖缺失问题
exit code -1073741701是Windows程序常见的崩溃码,大概率是aapt2.exe缺少Visual C++运行库导致的:
- 下载并安装Visual C++ Redistributable for Visual Studio 2017(x86和x64版本都要装),安装完成后重启电脑,再尝试执行命令。
3. 清理残留临时文件并重新执行
错误日志里提到临时目录删除失败,说明之前的临时文件有残留,可能干扰了新的转换过程:
- 手动删除
C:\Users\<你的用户名>\AppData\Local\Temp里那些长数字命名的临时文件夹(比如日志里的8658885577631656545、6789457478435634974); - 打开命令提示符,切换到你的AAB文件所在目录,用更新后的bundletool重新执行命令,建议手动指定签名信息避免自动签名的问题:
java -jar bundletool.jar build-apks --bundle=app.aab --output=app.apks --ks=C:\Users\<你的用户名>\.android\debug.keystore --ks-pass=pass:android --ks-key-alias=androiddebugkey --key-pass=pass:android
4. 直接用Android Studio生成APK(更省心的方式)
如果命令行的方式还是有问题,直接用AS的可视化操作更简单:
- 生成通用APK:点击顶部菜单
Build->Build Bundle(s) / APK(s)->Build APK(s),AS会直接在项目的app/build/outputs/apk/debug目录下生成APK文件; - 生成拆分APK集合:点击
Build->Generate Signed Bundle / APK,选择APK选项,按照向导完成签名配置,就能生成对应的APK集合包。
内容的提问来源于stack exchange,提问作者Yamuna
相关产品推荐
相关产品推荐

