我使用新的Android App Bundle格式构建我的项目。通过APK文件,我可以将APK下载到我的设备上,打开它,并立即安装应用程序。aab格式),我的Nexus 5X运行Android 8.1无法打开该文件。有没有什么方法可以像apk一样方便地在设备上安装aab ?
当前回答
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
其他回答
简短的回答:
不直接。
再答:
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
无法安装应用程序包[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开发者的捆绑工具链接的参考
如果你想在不使用PLAY STORE的情况下安装应用程序包,你需要将你的构建变体改为在Android工作室“发布”。
如果你不能自己开发应用程序,但有一个发布包,那么请参考最流行的答案。
去Android Studio > Build >选择Build Variant..
一旦您这样做,您的构建配置可能开始显示错误。 这是因为您现在还需要在这个配置中提供签名细节(这引用了来自build.gradle的签名细节)。
您可以编辑配置,然后点击底部的Fix按钮,它会要求您填写签名详细信息。
或者你可以编辑build.gradle 确保您提供了buildTypes{}和signingconfigurations {}
android {
signingConfigs {
release {
storeFile file('<Your PATH>\\keystore.jks')
storePassword 'XXXXX
keyAlias 'XXXXX'
keyPassword 'xxxxx'
}
debug {
storeFile file('<Your PATH>\\keystore.jks')
storePassword 'XXXXX
keyAlias 'XXXXX'
keyPassword 'xxxxx'
}
}
compileSdkVersion 32
defaultConfig {
....
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug
{
signingConfig signingConfigs.debug
}
}
...
}
dependencies {
...
}
在Android Studio开始正确反射之前会有一到两分钟的延迟。否则,你可以做一个干净的重建,然后运行应用程序。
当你这次运行应用程序时,它将以发布模式安装在目标设备上。 你可能需要一种方法来识别已安装应用程序的构建变体。你可以在应用程序的某个地方显示构建名称和变体。或者如果你有一个按钮,只在调试模式下显示,你可以检查。
如果您想从您的aab安装apk到您的设备进行测试,那么您需要在连接的设备上运行它之前编辑配置。
进入编辑配置 选择Deploy下拉菜单,将“Default apk”改为“apk from app bundle”。 应用更改,然后在连接的设备上运行它。进行此更改后,构建时间将增加。
这将直接在从aab连接的设备上安装apk。
推荐文章
- 警告: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文件