【flutter填坑】Android Gradle plugin requires Java 11 to run

Flutter项目在对Android12进行适配时候,修改了SDK,build tools等相关工具版本后,会要求使用Java11进行编译。
问题是,在更新了jdk后,依然会提示requires Java 11 to run

What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
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使用的jdk是flutter doctor -v中显示的位置

在命令行执行flutter doctor -v
输出结果中:
Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/caoxun/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    //只有这里显示是java 11才有效。如果这里是1.8jdk,那么别的地方配置是对flutter无效的。
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    //省略

其中的Java binary at才是指向flutter使用的jdk,它可能与系统中配置的JAVA_HOME并不是同一个路径。

对于使用jenkins等服务器打包脚本的情况来说,问题也是同样的。服务器上可能有多个jdk配置,但真正对flutter生效的依然是flutter doctor -v中显示的路径位置。所以需要对它进行更新或配置。

你可能感兴趣的:(【flutter填坑】Android Gradle plugin requires Java 11 to run)