我使用新的Android App Bundle格式构建我的项目。通过APK文件,我可以将APK下载到我的设备上,打开它,并立即安装应用程序。aab格式),我的Nexus 5X运行Android 8.1无法打开该文件。有没有什么方法可以像apk一样方便地在设备上安装aab ?


当前回答

对于那些想要在所有android设备上运行的universal.apk的人:

brew install bundletool
bundletool build-apks --mode universal --bundle ./app-release.aab --output ./app.apks
mv app.apks app.zip
unzip app.zip

现在,你可以得到你的universal。apk

其他回答

无法安装应用程序包[NAME]。Aab直接到android设备,因为它是发布格式,但有办法从bundle中提取所需的apk并将其安装到您的设备,过程如下

从这里下载bundletool 在你的终端上运行这个,

java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks

最后一步将生成一个名为out_bundle_archive_set的文件。Apks,只需将其重命名为out_bundle_archive_set.zip并提取zip文件,跳转到文件夹out_bundle_archive_set > standalones,在那里您将看到所有Apks的列表

这里有来自android开发者的捆绑工具链接的参考

直接从设备上安装aab,我找不到办法。

但是有一种方法可以通过命令行安装它,使用以下文档

根据“@Albert Vila Calvo”的评论,他指出要使用HomeBrew安装捆绑工具,请使用brew install bundletool

您现在可以从aab文件中安装extract apks并将其安装到设备中

通过下一个命令提取apk文件

Java -jar bundletool-all-0.3.3.jar build-apks——bundle=bundle。艺术展——输出=应用。apk, ks = my-release-key。密钥库——ks-key-alias=别名——ks-pass=pass:密码

参数:

——bundle -> Android bundle .aab文件 ——output ->生成的apk文件的目标和文件名 ——ks ->用于生成Android Bundle的Keystore文件 ——ks-key-alias -> keystore文件的别名 ——ks-pass ->别名文件的密码(请注意密码值前的“pass”前缀)

然后你会有一个扩展名为.apks的文件 现在你需要把它安装到一个设备上

Java -jar bundletool-all-0.6.0.jar install-apks——adb=/android-sdk/platform-tools/adb——apks=app.apks

参数:

——adb -> adb文件路径 ——apks ->需要安装apks文件

Windows 11:

C:\dev\bundletool-all-1.9.1\bundletool.jar build-apks——bundle=app-release。= app-release.aab艺术展——输出。apk——模式=普遍

PS C:/folder-with-aab-file> ren app-release.aabapk app-release.aab.apks.zip

解压zip文件后,apk文件的名称为:universal.apk

MAC:

brew install bundletool
bundletool build-apks --bundle=app-release.aab --output=app-release.apks
bundletool install-apks --apks=app-release.apks

使用(在Linux上): cd安卓 。/ gradlew assemblyRelease | assemblyDebug

为每个用例生成一个无符号APK(用于调试或测试)

注意:在Windows上,将gradle可执行文件替换为gradlew.bat