第二章 开发环境搭建:Flutter SDK安装、Android Studio配置、Gradle与NDK版本兼容、多平台构建配置实战

说实话,搭建开发环境这件事,看着简单,但坑是真不少。我见过太多新手卡在这一步,甚至有些老手换了电脑也得折腾半天。这一章,我就把这些年踩过的坑、总结的经验,一次性给你讲透。

2.1 Flutter SDK安装——别小看这一步

Flutter SDK的安装,官方文档写得很清楚,但我还是想啰嗦几句。

下载渠道的选择

我个人习惯从GitHub Releases页面下载,而不是用git clone。为什么?因为git clone会把整个历史记录都拉下来,占用空间不说,还慢。直接下载压缩包,干净利落。

版本管理

千万别装最新的beta版或dev版。我吃过这个亏——有一次为了尝鲜,装了dev版,结果项目跑到一半,发现某个插件不兼容,折腾了两天才回退。所以,永远用stable版本

核心要点:Flutter SDK的安装路径不要包含中文和空格。我见过有人装在"Program Files (x86)"下,结果编译时各种奇葩报错。

环境变量配置

把Flutter的bin目录加到PATH里,这步别漏了。配置完后,在终端里跑一下flutter doctor,它会帮你检查环境是否完整。

# 以macOS为例,编辑 ~/.zshrc 或 ~/.bash_profile
export FLUTTER_HOME=/Users/你的用户名/development/flutter
export PATH=$PATH:$FLUTTER_HOME/bin

# 然后执行
source ~/.zshrc
flutter doctor

2.2 Android Studio配置——IDE的调教艺术

Android Studio是Flutter开发的主力IDE。但说实话,默认配置真不好用。

插件安装

必须装的两个插件:Flutter和Dart。别去网上找什么第三方插件,直接在Android Studio的插件市场搜就行。

  • 打开Android Studio → Preferences → Plugins
  • 搜索"Flutter",安装
  • 搜索"Dart",安装
  • 重启IDE

SDK路径配置

装完插件后,记得配置Flutter SDK路径。在Preferences → Languages & Frameworks → Flutter里,指定你刚才解压的Flutter目录。

小技巧:我习惯把Android Studio的字体调成JetBrains Mono,看着舒服,代码也不容易看花眼。你可以在Preferences → Editor → Font里设置。

2.3 Gradle与NDK版本兼容——最头疼的部分

嗯,这里要注意。Gradle和NDK的版本兼容问题,是我在项目中遇到最多的坑。

Gradle版本选择

Flutter项目默认会带一个Gradle版本,但有时候它跟你的Android Gradle Plugin(AGP)不匹配。怎么查?看项目根目录下的android/build.gradle文件。

// android/build.gradle
buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.0'  // 这就是AGP版本
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

NDK版本兼容

如果你要用到原生代码(比如C/C++库),NDK版本就很重要了。我曾经因为NDK版本不对,编译时疯狂报错,查了两天才发现是版本问题。

Flutter版本 推荐AGP版本 推荐NDK版本
3.10.x 7.4.x 25.x
3.13.x 8.0.x 26.x
3.16.x 8.1.x 26.x

警告:别随便升级Gradle版本。我见过有人为了"最新版"把Gradle从7.4升到8.2,结果项目直接崩了。Gradle的升级要跟AGP版本配套,否则就是给自己找麻烦。

2.4 多平台构建配置实战——一次配置,到处运行

Flutter号称"一次编写,到处运行",但配置上还是得花点心思。

Android平台配置

android/app/build.gradle里,有几个关键配置:

android {
    compileSdkVersion 34  // 尽量用最新的compileSdk
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 21   // 别设太低,否则很多库不支持
        targetSdkVersion 34
        versionCode 1
        versionName "1.0.0"
        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a", "x86_64"
        }
    }
}

iOS平台配置

iOS的配置主要在Xcode里。打开ios/Runner.xcworkspace,在Target → General里设置:

  • Bundle Identifier:跟Android的applicationId保持一致
  • Deployment Target:建议设到12.0以上
  • Signing & Capabilities:配置好开发者账号

Web平台配置

Web平台相对简单,但要注意一点:Flutter的Web应用默认不支持SEO。如果你需要搜索引擎优化,得用flutter build web --web-renderer canvaskit命令。

我的经验:多平台构建时,最烦人的是各平台的签名配置。我建议你写一个脚本,统一管理签名文件。比如Android的keystore和iOS的p12证书,都放在一个安全目录下,用脚本自动读取。

2.5 知识体系总览

说了这么多,你可能有点晕。没关系,我画了一张图,把整个开发环境搭建的脉络理清楚。

Flutter开发环境搭建知识体系 Flutter SDK SDK下载 → 环境变量配置 → flutter doctor验证 Android Studio → 插件安装 → SDK路径配置 Gradle版本 ↔ AGP版本 ↔ NDK版本 三者匹配 Android(compileSdk/minSdk/abiFilters)→ iOS(Bundle ID/Deployment Target)→ Web 一次配置,多平台运行

说白了,整个环境搭建就四个核心环节:SDK安装、IDE配置、版本兼容、多平台构建。每一步都有坑,但只要你按我说的来,基本不会出大问题。

我记得有一次帮同事排查问题,他死活编译不过,最后发现是Gradle缓存的问题。跑一下./gradlew clean,再重新编译,就好了。所以,遇到问题别慌,先清理缓存试试。

最后提醒一句:开发环境搭建好了,别急着写代码。先跑一下flutter create test_app,创建一个测试项目,确保能正常编译运行。这一步能帮你排除90%的环境问题。

专注资料整理