返回

从零开始理解 Flutter 适配Android armeabi 架构

Android

前言

Flutter 是一款非常优秀的跨平台开发框架,凭借其出色的性能和丰富的组件库,受到广大开发者的喜爱。然而,由于 Flutter 在设计之初就不支持 armeabi 架构的 CPU,因此在某些场景下,Flutter 无法在搭载 armeabi 架构的 Android 设备上运行。

如果我们无法修改原生工程的情况下,就要介入 Flutter 的编译过程来适配 armeabi 架构。不同版本的 Flutter 适配 armeabi 的方式略有不同,本文将详细介绍 Flutter 2.x 和 Flutter 3.x 的适配过程。

Flutter 2.x 适配 armeabi

步骤一:修改工程的 build.gradle 文件

在项目的根目录下找到 build.gradle 文件,并在其 dependencies 节点中添加以下代码:

implementation 'com.android.support:appcompat-v7:28.0.0'

步骤二:修改项目的 app/build.gradle 文件

在项目的 app/build.gradle 文件中,找到 android 节点,并添加以下代码:

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a', 'arm64-v8a'
        universalApk false
    }
}

步骤三:运行项目

在终端中运行以下命令:

flutter run --release --no-sound-null-safety

Flutter 3.x 适配 armeabi

步骤一:修改工程的 build.gradle 文件

在项目的根目录下找到 build.gradle 文件,并在其 dependencies 节点中添加以下代码:

implementation 'com.android.support:appcompat-v7:28.0.0'

步骤二:修改项目的 app/build.gradle 文件

在项目的 app/build.gradle 文件中,找到 android 节点,并添加以下代码:

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a', 'arm64-v8a'
        universalApk false
    }
}

步骤三:修改项目的 pubspec.yaml 文件

在项目的 pubspec.yaml 文件中,找到 flutter 节点,并添加以下代码:

uses-material-design: true

步骤四:运行项目

在终端中运行以下命令:

flutter run --release --no-sound-null-safety

注意事项

在适配 Flutter 到 armeabi 架构时,需要注意以下几点:

  • 确保使用的 Flutter 版本与 Android SDK 版本兼容。
  • 确保项目的 build.gradle 文件和 app/build.gradle 文件中的配置正确。
  • 在运行项目时,使用 --release--no-sound-null-safety 参数。
  • 在适配过程中,可能会遇到各种问题,需要根据具体情况进行排查和解决。

总结

通过以上步骤,我们可以成功地将 Flutter 适配到 armeabi 架构的 Android 设备上。希望本文能够帮助您解决 Flutter 适配 armeabi 架构时遇到的问题。