如何解决Android Studio、Android SDK与Flutter的版本兼容问题
解决Flutter项目因Java/Gradle版本冲突无法构建的问题
核心问题定位
你遇到的矛盾点在于:flutter doctor检测到的是OpenJDK 21,但Gradle构建时实际调用的是系统的Java 11——这是因为Android Studio的JDK配置没有正确关联到Flutter和Gradle的执行环境。
分步解决方案
1. 确认Android Studio自带JDK路径
Android Studio Ladybug版本自带的JDK(JetBrains Runtime)路径通常为:
- Windows:
C:\Program Files\Android\Android Studio\jbr - macOS:
/Applications/Android Studio.app/Contents/jbr - Linux:
/opt/android-studio/jbr
你也可以在Android Studio中通过File > Project Structure > SDK Location查看JDK location,直接复制该路径。
2. 配置Flutter使用指定JDK
执行以下命令,将Flutter指向Android Studio自带的JDK(替换为你复制的实际路径):
flutter config --jdk-dir=<你的JDK路径>
例如Linux环境下可能是:
flutter config --jdk-dir=/opt/android-studio/jbr
执行完成后重启Android Studio,再运行flutter doctor -v确认JDK路径已更新。
3. 同步Gradle与Java版本的兼容配置
方案A:匹配Java 21对应的Gradle版本
Android Studio自带的JDK是21.0.3,需搭配兼容的Gradle和Android Gradle插件(AGP):
- AGP 8.4+ 对应 Gradle 8.7+
- 修改项目根目录下的
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip - 修改项目根目录的
build.gradle(Project级):dependencies { classpath 'com.android.tools.build:gradle:8.4.0' // 保留其他原有依赖 }
方案B:强制Gradle使用指定JDK
如果上述配置后仍调用系统Java 11,可直接在Gradle配置中指定JDK路径:
在项目根目录的gradle.properties中添加:
org.gradle.java.home=<你的JDK路径>
例如:
org.gradle.java.home=/opt/android-studio/jbr
4. 清理缓存并重新构建
执行以下命令清理旧缓存,避免配置残留干扰:
flutter clean rm -rf ~/.gradle/caches # Linux/macOS环境执行 # Windows环境:删除C:\Users\<你的用户名>\.gradle\caches目录 flutter pub get ./gradlew clean build # 进入项目根目录执行
额外注意事项
- Android Studio Ladybug(2024.2.1)自带的JBR完全符合Flutter对Java 17-21的要求,无需手动安装其他JDK,避免引入额外冲突。
- 不要修改系统全局的
JAVA_HOME环境变量,优先让Flutter和Gradle使用Android Studio自带的JDK,规避系统级版本冲突。
内容的提问来源于stack exchange,提问作者user48956
相关产品推荐
相关产品推荐

