如何让Flutter/VSCode使用新安装Android Studio的JDK?
问题:VSCode调试Flutter应用时使用旧版Android Studio JDK导致构建失败
Ubuntu 22.04系统中已安装Android Studio 2021.2,新增安装Android Studio 2022.2后,通过VSCode执行「Run > Start debugging」构建Flutter应用失败,错误显示仍在使用旧版Android Studio的捆绑JDK:/opt/android-studio-2021.2.1/android-studio/jre
错误详情
* What went wrong: A problem occurred evaluating project ':app'. > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 17 to run. You are currently using Java 11. Your current JDK is located in /opt/android-studio-2021.2.1/android-studio/jre You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing `org.gradle.java.home` in `gradle.properties`.
flutter doctor -v输出
[✓] Flutter (Channel stable, 3.10.4, on Ubuntu 22.04.2 LTS 5.19.0-41-generic, locale en_US.UTF-8) • Flutter version 3.10.4 on channel stable at /home/gameveloster/snap/flutter/common/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 682aa387cf (3 days ago), 2023-06-05 18:04:56 -0500 • Engine revision 2a3401c9bb • Dart version 3.0.3 • DevTools version 2.23.1 [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2) • Android SDK at /home/gameveloster/Android/Sdk • Platform android-33, build-tools 33.0.2 • Java binary at: /opt/android-studio-2022.2.1.20-linux/android-studio/jbr/bin/java • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) • All Android licenses accepted. [✓] Chrome - develop for the web • Chrome at google-chrome [✓] Linux toolchain - develop for Linux desktop • clang version 10.0.0-4ubuntu1 • cmake version 3.16.3 • ninja version 1.10.0 • pkg-config version 0.29.1 [✓] Android Studio (version 2022.2) • Android Studio at /opt/android-studio-2022.2.1.20-linux/android-studio • 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 • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) [✓] Android Studio (version 2021.2) • Android Studio at /opt/android-studio-2021.2.1/android-studio • 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 • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840) [!] Android Studio • Android Studio at /opt/android-studio • 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 • VS Code at /snap/code/current • Flutter extension version 3.66.0 [✓] Connected device (2 available) • Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.2 LTS 5.19.0-41-generic • Chrome (web) • chrome • web-javascript • Google Chrome 114.0.5735.106 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category.
/opt目录内容
lrwxrwxrwx 1 root root 47 Jun 8 13:26 android-studio -> android-studio-2022.2.1.20-linux/android-studio/ lrwxrwxrwx 1 root root 38 Aug 3 2022 android-studio-2021 -> android-studio-2021.2.1/android-studio/ drwxr-xr-x 3 root root 4096 Sep 13 2022 android-studio-2021.2.1/ drwxrwxr-x 3 root root 4096 Jun 8 13:15 android-studio-2022.2.1.20-linux/
$PATH输出
$ echo $PATH /home/gameveloster/go/bin:/home/gameveloster/.go/bin:/opt/anaconda3/condabin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/gameveloster/.cargo/bin:/home/gameveloster/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/gameveloster/.dotnet/tools:/usr/local/go/bin
解决方案
方法1:配置项目gradle.properties指定JDK路径
在Flutter项目的android/gradle.properties文件中添加以下配置,指向新版Android Studio的JDK路径:
org.gradle.java.home=/opt/android-studio-2022.2.1.20-linux/android-studio/jbr
方法2:设置全局JAVA_HOME环境变量
编辑~/.bashrc或~/.zshrc(根据使用的shell),添加:
export JAVA_HOME=/opt/android-studio-2022.2.1.20-linux/android-studio/jbr export PATH=$JAVA_HOME/bin:$PATH
执行以下命令使配置生效:
source ~/.bashrc # 若使用zsh则执行 source ~/.zshrc
方法3:配置VS Code的Java路径
打开VS Code设置(快捷键Ctrl+,),搜索java.home,将其值设置为:
/opt/android-studio-2022.2.1.20-linux/android-studio/jbr
内容的提问来源于stack exchange,提问作者gameveloster
相关产品推荐
相关产品推荐

