第二章 开发环境搭建: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 知识体系总览
说了这么多,你可能有点晕。没关系,我画了一张图,把整个开发环境搭建的脉络理清楚。
说白了,整个环境搭建就四个核心环节:SDK安装、IDE配置、版本兼容、多平台构建。每一步都有坑,但只要你按我说的来,基本不会出大问题。
我记得有一次帮同事排查问题,他死活编译不过,最后发现是Gradle缓存的问题。跑一下./gradlew clean,再重新编译,就好了。所以,遇到问题别慌,先清理缓存试试。
最后提醒一句:开发环境搭建好了,别急着写代码。先跑一下flutter create test_app,创建一个测试项目,确保能正常编译运行。这一步能帮你排除90%的环境问题。