【问题标题】:merging multiple apks from bundle into one将捆绑包中的多个 apk 合并为一个
【发布时间】:2019-02-14 09:04:18
【问题描述】:

是否可以将通过 android app bundle 生成的多个 apk 合并到一个可安装/可分发的 apk 中?

我尝试通过 adb install-multiple 进行安装,但这种方式无法分发。

【问题讨论】:

  • 你为多CPU架构生成apk了吗?
  • 是的。所以基本上有3个以这种方式生成的apk base-apk,architecure-apk,drawable-resources-apk。我想将它们组合成一个可安装的 apk。

标签: android android-app-bundle


【解决方案1】:

Bundletool build-apks 命令有一个--mode=universal 标志,它允许您构建一个包含所有内容的通用 APK。

它在 App Bundle 上运行,而不是在生成的 APK 上运行。

【讨论】:

  • 虽然它解决了获取可安装apk的问题,但这仍然不是我想要的。我正在寻找的是仅针对特定设备的 apk,即其 abi 和分辨率。
【解决方案2】:

您可能使用了 abi split 。只需将universalApk true 放入您的拆分中,如下所示,您将获得一个适用于所有人的 apk。

android {
    splits {
        // Configures multiple APKs based on ABI.
        abi {
            // Enables building multiple APKs per ABI.
            enable true

            // By default all ABIs are included, so use reset() and include to specify that we only
            // want APKs for x86, armeabi-v7a, and mips.
            reset()

            // Specifies a list of ABIs that Gradle should create APKs for.
            include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"

            // Specifies that we want to also generate a universal APK that includes all ABIs.
            universalApk true
        }
    }
    //...    
}

【讨论】:

  • 正如我所提到的,我正在使用 android app bundles。这无济于事。
【解决方案3】:

不确定这是否仍然是您的问题?关于官方 android 文档:

https://developer.android.com/studio/command-line/bundletool#device_specific_apks

你应该可以

从现有 APK 集中提取特定于设备的 APK

借助捆绑工具

bundletool extract-apks
--apks=/MyApp/my_existing_APK_set.apks
--output-dir=/MyApp/my_pixel2_APK_set.apks
--device-spec=/MyApp/bundletool/pixel2.json

  • --apks => 你的 apk 集
  • --output-dir => 想要的输出
  • --device-spec => 设备细节的 json 文件

如果这不能解决您的问题并且您首先通过 Play 商店获得了捆绑包,这也可以帮助您:

分享安装链接 要共享链接以安装 Google Play 从您的 app bundle 生成的相应设备特定 APK: 打开 App bundle explorer 页面(Release > App bundle explorer)。 选择页面右上角附近的版本过滤器。 在“选择版本”表中,选择要查看的版本上的右箭头。 选择下载选项卡。 要共享链接以安装特定于设备的 APK:在“内部应用共享链接”部分中,选择复制可共享链接。 分享链接。 提示:您可以选择管理访问以访问内部应用共享页面并快速与您的团队共享应用程序包和 APK 链接。要了解更多信息,请转到在内部共享 app bundle 和 APK。

如此处所述:https://support.google.com/googleplay/android-developer/answer/9844279?hl=en

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2013-11-24
    • 2011-03-29
    相关资源
    最近更新 更多