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

降级Flutter至2.2.0后Android Studio提示无法找到捆绑Java版本

问题描述

我在VS Code里开发一个旧Flutter项目,这个项目没法用最新Flutter版本构建,所以通过git checkout 2.2.0降级到了前开发者用的版本。运行flutter doctor时,其他检查项都正常,但Android Studio项出现了**"Unable to find bundled Java version"**警告。

我已经试过这些常见方案,但都没用:

  • 在/Applications/Android Studio.app/Contents/目录下创建jre指向jbr的符号链接,无效。
  • 在.bashrc里通过export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"明确设置JAVA_HOME,虽然设置成功但警告还在,换成jbr目录也一样。
  • 更新并重新安装Android Studio。

附flutter doctor -v输出:

$ flutter doctor -v
[✓] Flutter (Channel unknown, 2.2.0, on macOS 13.6 22G120 darwin-x64, locale en-US)
    • Flutter version 2.2.0 at /Users/bguiles/Development/flutter
    • Framework revision b22742018b (2 years, 5 months ago), 2021-05-14 19:12:57 -0700
    • Engine revision a9d88a4d18
    • Dart version 2.13.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/bguiles/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/bguiles/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/bguiles/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 15.0, Build version 15A240d
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.82.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.72.0

[✓] Connected device (2 available)
    • iPhone 15 (mobile) • 64ED10B4-7FDA-44CF-B82E-AF4E36AF3269 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome
      117.0.5938.132

! Doctor found issues in 1 category.
解决方案

这个问题的核心是Flutter 2.2.0版本太老,它的doctor检测逻辑还没适配Android Studio 2020.3之后的版本——从Android Studio Arctic Fox(2020.3.1)开始,官方把内置JDK目录从jre改成了jbr,但旧版Flutter doctor只会硬找jre路径,哪怕做了软链接也可能因为检测逻辑的问题识别不到。

给你三个可行的解决方向:

1. 降级Android Studio到适配版本

直接把Android Studio降级到Flutter 2.2.0发布时(2021年5月)的主流版本,比如Android Studio 4.2.x或者Arctic Fox(2020.3.1),这些版本仍自带jre目录,旧版Flutter doctor能正常识别,不会再出警告。

2. 修改Flutter Doctor的检测逻辑(不用降级AS)

如果不想换Android Studio版本,可以手动修改Flutter工具的检测代码,让它能识别jbr目录:

  • 打开终端,定位到Flutter安装目录的对应文件:
    cd /Users/bguiles/Development/flutter/packages/flutter_tools/lib/src/android
    
  • 用编辑器打开android_studio.dart,搜索和jre相关的路径判断(比如Path.join(installationPath, 'jre')),把它改成Path.join(installationPath, 'jbr'),或者添加判断:如果jre目录不存在,就尝试读取jbr目录。
  • 回到Flutter根目录,重新编译Flutter工具:
    cd /Users/bguiles/Development/flutter
    flutter pub get
    dart pub global activate -s path ./packages/flutter_tools
    
  • 重启终端后再运行flutter doctor,警告应该就消失了。

3. 直接忽略警告(最省事)

从你的flutter doctor输出能看到,Android toolchain已经正常找到了Java环境,这个警告只是Flutter doctor检测Android Studio内置Java时的小问题,不会影响实际编译和运行项目。如果开发过程中没有遇到Java相关报错,完全可以不管这个警告,正常开发就行。

内容的提问来源于stack exchange,提问作者Ben Guiles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:04:51