从捆绑文件生成独立的 apk (app.aab)
Generating a standalone apk from a bundle file (app.aab)
我在使用 bundletool 从 android 中的捆绑文件创建独立 apk 时遇到问题。
我编写了一个包含多个模块的应用程序(可使用 splitInstallManager 单独下载)并将其部署为捆绑 (app.aab) 文件。
到目前为止一切顺利,但无论出于何种原因,我还需要为一个特定设备生成一个独立的 apk,但我似乎无法完成它。
我有:
1. 我的 app.aab
2.我的密钥库
3. 使用 "bundletool get-device-spec"
生成的设备规格文件
我在做什么:
java -jar bundletool.jar build-apks --ks=[my keystore] --ks-pass=[password] --ks-key-alias=[alias] --key-pass=[key password] --bundle=app.aab --output=app.apks --device-spec=device-specs.json --overwrite
根据
bundletool help build-apks
当您将设备规格参数传递给工具时,它默认使用“--mode=default”,这意味着生成的 apks 文件应包含:“...如果未设置或设置为 'default'我们生成拆分、独立和即时 APK。...”。
问题是生成的 app.apks 文件仅包含 "splits" 子文件夹。
此外,我收到以下警告:
警告:发生了非法的反射访问操作
警告:com.google.protobuf.UnsafeUtil(文件:/home/oberon/Downloads/bundletool.jar)对字段 java.nio.Buffer.address 的非法反射访问
警告:请考虑将此报告给 com.google.protobuf.UnsafeUtil 的维护者
警告:使用 --illegal-access=warn 启用进一步非法反射访问操作的警告
警告:在未来的版本中将拒绝所有非法访问操作
如何生成独立的 apk?!
独立 APK 仅在 minSdkVersion < 21
时生成。
如果您想要一个通用 APK,可以使用 --mode=universal
,它将构建一个包含所有内容的单个 APK。如下所述 https://developer.android.com/studio/command-line/bundletool
我在使用 bundletool 从 android 中的捆绑文件创建独立 apk 时遇到问题。
我编写了一个包含多个模块的应用程序(可使用 splitInstallManager 单独下载)并将其部署为捆绑 (app.aab) 文件。 到目前为止一切顺利,但无论出于何种原因,我还需要为一个特定设备生成一个独立的 apk,但我似乎无法完成它。
我有:
1. 我的 app.aab
2.我的密钥库
3. 使用 "bundletool get-device-spec"
我在做什么:
java -jar bundletool.jar build-apks --ks=[my keystore] --ks-pass=[password] --ks-key-alias=[alias] --key-pass=[key password] --bundle=app.aab --output=app.apks --device-spec=device-specs.json --overwrite
根据
bundletool help build-apks
当您将设备规格参数传递给工具时,它默认使用“--mode=default”,这意味着生成的 apks 文件应包含:“...如果未设置或设置为 'default'我们生成拆分、独立和即时 APK。...”。
问题是生成的 app.apks 文件仅包含 "splits" 子文件夹。
此外,我收到以下警告: 警告:发生了非法的反射访问操作 警告:com.google.protobuf.UnsafeUtil(文件:/home/oberon/Downloads/bundletool.jar)对字段 java.nio.Buffer.address 的非法反射访问 警告:请考虑将此报告给 com.google.protobuf.UnsafeUtil 的维护者 警告:使用 --illegal-access=warn 启用进一步非法反射访问操作的警告 警告:在未来的版本中将拒绝所有非法访问操作
如何生成独立的 apk?!
独立 APK 仅在 minSdkVersion < 21
时生成。
如果您想要一个通用 APK,可以使用 --mode=universal
,它将构建一个包含所有内容的单个 APK。如下所述 https://developer.android.com/studio/command-line/bundletool