flutter doctor --android-licenses 由于 java.lang.UnsupportedClassVersionError 而无法工作

Aja*_*Jha 17 java android flutter

我正在尝试接受 flutter doctor --android-licenses 但出现此错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Run Code Online (Sandbox Code Playgroud)

Aye*_*haA 12

我使用的是 MacOS Ventura。我今天安装了Android Studio。这就是我解决问题的方法:

  1. 下载JDK19
  2. 按照此链接中提到的步骤操作
  3. 由于我正在运行 Android Studio Electric Eel,因此打开终端并运行此命令cd /Applications/Android\ Studio.app/Contents/jbr
  4. 然后运行这个命令ln -s ../jbr jdk
  5. 最后,ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
  6. 转到 Finder -> 应用程序 -> Android Studio。右键单击 Android Studio 并选择“显示包内容”
  7. 在文件夹“Contents”中创建了新文件夹“jre”
  8. 将“jbr”文件夹中的内容复制到“jre”文件夹
  9. flutter doctor又跑了
  10. flutter doctor --android-licenses

之后我能够成功同意许可。

这里这里也提到了所有步骤


mar*_*rc_ 8

我也遇到了同样的错误,我没有指定 JAVA_HOME env,而 flutter 使用了我的 1.8 java.lang.

对于 macOS:在终端中检查您的 JAVA_HOME 环境

printenv
Run Code Online (Sandbox Code Playgroud)

如果 env 不存在,则列出已安装的 java 版本

/usr/libexec/java_home -V
Run Code Online (Sandbox Code Playgroud)

选择一个并执行

export JAVA_HOME=$(/usr/libexec/java_home -v"YOUR_VERSION")
Run Code Online (Sandbox Code Playgroud)


pdd*_*inh 7

更新

原来我的环境中安装了2个JDK,你可以使用以下命令检查

/usr/libexec/java_home -V
Run Code Online (Sandbox Code Playgroud)

所以删除旧的JDK版本后,问题就解决了。


有同样的错误,虽然这是我的java --version输出

java 19.0.1 2022-10-18
Java(TM) SE Runtime Environment (build 19.0.1+10-21)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

我升级到 flutter 3.7.1 后会发生这种情况

  • @pathros,从 `/usr/libexec/java_home -V` 中,您将找到旧 JDK 版本的路径,然后只需使用 `sudo rm -rf <old-jdk-path>` 将其删除 (2认同)

tec*_*ura 5

有一个简单的方法可以解决这个问题。

  • 检查您机器上安装的 java 版本。如果是版本 8,则安装 Android SDK Command-line Tools 8.0 并卸载最新版本。 在此输入图像描述