You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:36:02