我使用新的Android App Bundle格式构建我的项目。通过APK文件,我可以将APK下载到我的设备上,打开它,并立即安装应用程序。aab格式),我的Nexus 5X运行Android 8.1无法打开该文件。有没有什么方法可以像apk一样方便地在设备上安装aab ?
当前回答
简短的回答:
不直接。
再答:
Android应用程序捆绑是谷歌Play Store上应用程序的默认发布格式。但Android设备需要.apk文件来安装应用程序。
Play Store或你正在安装的任何其他源将从包中提取apks,签名每个apks,然后将它们安装到特定的目标设备。
从。aab到。apk的转换是通过bundletool完成的。
你可以使用内部应用程序共享将应用程序的可调试构建上传到Play Store,并与测试人员共享。
其他回答
对于那些想要在所有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
这在我的mac电脑上很管用。 你需要使用一个叫做bundletool的工具,如果还没有使用brew安装,你可以安装它
brew install bundletool
执行该命令解压apks文件并将其存储在所需的位置
bundletool build-apks --bundle=path/to/app-release.aab --output=/path/to/output/app.apks --local-testing
在连接的Android设备上安装
bundletool install-apks --apks=/path/to/output/app.apks
我已经在这里的gist中记录了完整的命令和输出https://gist.github.com/maheshmnj/6f5debbfae2b8183d94ca789d081f026
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
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件