【问题标题】:Flutter emulator APK contains all ABIsFlutter 模拟器 APK 包含所有 ABI
【发布时间】:2019-08-28 15:41:26
【问题描述】:

我有一个项目,其中包含许多用于不同 ABI 的原生 .so 文件。

当我从 Visual Code 启动 Flutter Android 模拟器时,构建和安装应用程序需要很长时间。

我检查了 apk,它包含所有 ABI 的所有 .so 文件。

是否可以告诉 Flutter 只针对模拟器 ABI?

【问题讨论】:

  • 运行flutter build apk -h 命令查看更多高级构建选项
  • 我知道我可以在构建时拆分 APK,但在这里我想从 IDE 调试它。
  • 拆分apk?我的意思是你可以为一个特定的目标平台构建(所以你只有那个平台的本地库)
  • 但也适用于颤振运行?
  • 是的,我想是的

标签: flutter


【解决方案1】:

flutter run 不支持指定目标平台,但它支持传递风格。我们可以使用它来解决问题。

为过滤 ABI 的模拟器创建一个风格:

    flavorDimensions "abi"

    productFlavors {
        emulator {
            dimension "abi"
            ndk {
                abiFilter "x86_64"
            }
        }
        all {
            dimension "abi"
        }
    }

现在,通过调用flutter run --flavor emulator,APK 将只包含x86_64 原生库。

对于 Visual Code,可以修改 .vscode/launch.json 以传递风味:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
            "args": [
                "--flavor",
                "emulator"
            ]
        }
    ]
}

【讨论】:

    猜你喜欢
    • 2021-02-11
    • 2021-12-10
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2019-01-25
    相关资源
    最近更新 更多