【问题标题】:Could not find an option named "split-per-abi"找不到名为“split-per-abi”的选项
【发布时间】:2019-10-29 14:48:10
【问题描述】:

在使用flutter build apk 构建 APK 文件时,请问什么版本的 Flutter 支持 --split-per-abi 选项。我正在使用Flutter 1.5.4-hotfix.2,但仍然无法访问该选项。
根据文档Preparing an Android app for release

此命令会生成两个 APK 文件:

<app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
<app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk

删除 --split-per-abi 标志会导致胖 APK 包含 为所有目标 ABI 编译的代码。此类 APK 在 大小比他们的拆分同行,导致用户下载 不适用于其设备的本机二进制文件 建筑学。

我怎样才能让它工作?

编辑:它适用于Flutter 1.7.4

【问题讨论】:

    标签: flutter dart apk


    【解决方案1】:

    在您的&lt;app dir&gt;/android/app/build.gradle 添加splits 部分,如下所述:https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split

    基本配置是将其添加到您的build.gradle

    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 and x86_64.
    
          // Resets the list of ABIs that Gradle should create APKs for to none.
          reset()
    
          // Specifies a list of ABIs that Gradle should create APKs for.
          include "x86", "x86_64", "armeabi", "armeabi-v7a", "arm64-v8a"
    
          // Specifies that we do not want to also generate a universal APK that includes all ABIs.
          universalApk false
        }
      }
    }
    

    然后按照文档中的说明运行命令:

    flutter build apk --split-per-abi
    

    以下是支持的 ABI 列表: https://developer.android.com/ndk/guides/abis.html#sa

    通过上面的配置,您应该获得所有受支持的 ABI

    【讨论】:

    • 啊!非常感谢!我尝试了带有标志的配置,它仍然给出了相同的错误,但是使用您提供的配置运行 flutter build apk 仍然会为各种架构生成 APK。
    • 太好了...也许它对我有用,因为我使用的是 Flutter 1.7.4 -dev 频道。如果是这样的话,它应该很快就会进入稳定的分支。但至少它现在对你有用,这是完美的。
    • 是的!后来我注意到页面顶部的警告指出该文档适用于 Flutter 1.7.4 :-) 。今天要更新问题。谢谢!
    • 对,但即使使用1.7.4,您仍然需要添加splits 部分才能使其工作。如果您认为答案可以解决问题,请随意标记答案:)
    • 添加拆分 sn-p 后,我切换到 dev 频道并且错误消失了...谢谢老兄:)
    猜你喜欢
    • 2021-02-11
    • 2021-11-24
    • 2018-04-27
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多