Flutter医生:运行“flutter doctor –android-licenses”时出错

huangapple go评论129阅读模式
英文:

Flutter Doctor: Error when running "flutter doctor --android-licenses"

问题

当我尝试运行 "flutter doctor --android-licenses" 时,我遇到了以下错误。

错误:发生了 JNI 错误,请检查您的安装并重试
在线程 "main" 中的异常:java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider 已由更高版本的 Java 运行时编译(类文件版本 55.0),而此版本的 Java 运行时仅识别类文件版本高达 52.0
在 java.lang.ClassLoader.defineClass1(Native Method) 中
在 java.lang.ClassLoader.defineClass(ClassLoader.java:756)
在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
在 java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
在 java.net.URLClassLoader.access$100(URLClassLoader.java:74)
在 java.net.URLClassLoader$1.run(URLClassLoader.java:369)
在 java.net.URLClassLoader$1.run(URLClassLoader.java:363)
在 java.security.AccessController.doPrivileged(Native Method)
在 java.net.URLClassLoader.findClass(URLClassLoader.java:362)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:418)
在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:351)
在 java.lang.Class.getDeclaredMethods0(Native Method)
在 java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
在 java.lang.Class.privateGetMethodRecursive(Class.java:3048)
在 java.lang.Class.getMethod0(Class.java:3018)
在 java.lang.Class.getMethod(Class.java:1784)
在 sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
找到 Android sdkmanager 工具,但无法运行(C:\Users\Gago\AppData\Local\Android\sdk\cmdline-tools\latest\bin\sdkmanager.bat):"退出代码 1"。
尝试重新安装或更新您的 Android SDK,请访问 https://flutter.dev/docs/get-started/install/windows#android-setup 了解详细说明。


这是我的 flutter doctor:

医生总结(要查看所有详细信息,请运行 flutter doctor -v):
[√] Flutter(通道 stable,3.7.7,在 Microsoft Windows [版本 10.0.19044.2604] 上,区域设置 de-DE)
[X] Windows 版本(无法确认安装的 Windows 版本是否为 10 或更高版本)
[!] Android 工具链 - 为 Android 设备开发(Android SDK 版本 33.0.2)
X Android 许可状态未知。
运行 flutter doctor --android-licenses 以接受 SDK 许可证。
有关更多详细信息,请参阅 https://flutter.dev/docs/get-started/install/windows#android-setup
[√] Chrome - 用于 Web 开发
[√] Android Studio(版本 2022.1)
[√] IntelliJ IDEA Community Edition(版本 2021.2)
[√] IntelliJ IDEA Ultimate Edition(版本 2022.2)
[√] VS Code(版本 1.75.1)
[√] 连接的设备(2 可用)
[√] HTTP 主机可用性

!医生在 2 个类别中发现问题。


感激任何帮助!

我已经尝试卸载 Android Sdk 命令行工具并重新安装,但没有帮助。
我正在使用 Android Studio,我的 jdk 版本是 JDK 1.8.0_301。
英文:

I get this error when I try to run "flutter doctor --android-licenses" and I can't figure out why.

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 R
untime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
Android sdkmanager tool was found, but failed to run (C:\\Users\\Gago\\AppData\\Local\\Android\\sdk\\cmdline-tools\\latest\\bin\\sdkmanager.bat): "exited code 1".
Try re-installing or updating your Android SDK,
visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions.

Here's my flutter doctor:

Doctor summary (to see all details, run flutter doctor -v):
\[√\] Flutter (Channel stable, 3.7.7, on Microsoft Windows \[Version 10.0.19044.2604\], locale de-DE)
\[X\] Windows Version (Unable to confirm if installed Windows version is 10 or greater)
\[!\] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
X Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
\[√\] Chrome - develop for the web
\[√\] Android Studio (version 2022.1)
\[√\] IntelliJ IDEA Community Edition (version 2021.2)
\[√\] IntelliJ IDEA Ultimate Edition (version 2022.2)
\[√\] VS Code (version 1.75.1)
\[√\] Connected device (2 available)
\[√\] HTTP Host Availability

! Doctor found issues in 2 categories.

Any help is appreciated!

I already tried deinstalling Android Sdk Command line tool and reinstalling it, but it doesnt help.
I am using Android Studio and my jdk is JDK 1.8.0_301.

答案1

得分: 6

我解决了这个问题。对我有效的方法如下:

  1. 取消选中 Android SDK 命令行工具(最新版)
  2. 选中 Android SDK 命令行工具 8.0
  3. 点击应用
  4. 在Windows中,转到“C:\Users\USERNAME\AppData\Local\Android\Sdk\cmdline-tools”并将8.0文件夹重命名为“latest”
  5. 再次运行 Flutter doctor。

这是GitHub上@thurakhant提供的解决方案。谢谢!

英文:

I fixed the issue. What worked for me was this:

  1. Uncheck Android SDK command-line Tools (latest)
  2. Check Android SDK command-line Tools 8.0
  3. Click Apply
  4. In Windows, go to “C:\Users\USERNAME\AppData\Local\Android\Sdk\cmdline-tools” and rename the 8.0 folder to “latest”
  5. Run Flutter doctor again.

This is a solution by @thurakhant on github. Thank you!

答案2

得分: 2

使用完全相同的JDK和Flutter版本,我昨天在Macbook上遇到了这个问题。解决方法是访问Android Studio文件夹:

/Applications/Android Studio.app/Contents

确保有两个文件夹:“jbr”和“jre”,其中“jre”只是“jbr”的一个简单副本。

运行flutter doctor -v命令,报告显示更改后的*"No issues found!"*。

英文:

Having the exact same JDK and flutter version I had this problem yesterday (in Macbook). The solution was to access the Android studio folder:

/Applications/Android Studio.app/Contents

And have the two "jbr" and "jre" folders there, being "jre" a mere copy of "jbr"

flutter doctor -v command reported "No issues found!" with this change.

答案3

得分: 2

首先检查 "显示包详细信息",然后选择 Android SDK 命令行工具 8.0 版本。

英文:

First check "Show package details" and select version Android SDK command-line Tools 8.0

答案4

得分: 1

  1. 打开 Android Studio 并点击 SDK 管理器。
  2. 点击 SDK 工具,然后选择显示软件包详细信息,导航到 Android SDK 命令行工具,选择版本 8.0,然后点击应用按钮。
  3. 设置 JAVA_HOME 环境变量为 C:\Program Files\Android\Android Studio\jbr。
  4. 现在运行以下命令:
> flutter doctor --android-licenses
英文:
  1. Open Android Studio and Click on SDK Manager.
  2. Click on SDK tools, then select Show Package Details and navigate to Android SDK command-line tools, select version 8.0, and hit apply button.
  3. Set the Environment variable of JAVA_HOME to C:\Program Files\Android\Android Studio\jbr
  4. Now Run the command:

> flutter doctor --android-licenses

答案5

得分: 0

检查你的 Gradle 版本是否至少为 7.6。

android: gradle: wrapper: gradle.properties

gradle-7.6-all.zip

英文:

Check if your gradle version is at least 7.6

android : gradle : wrapper : gradle.properties

gradle-7.6-all.zip

答案6

得分: 0

下载最新的Java SDK。然后进入环境变量。在**用户变量(User)**里,添加两个变量。

  1. JAVA_HOME => C:\Program Files\Java\jdk-20(粘贴你的SDK路径)
  2. JDK_HOME => C:\Program Files\Java\jdk-20(粘贴你的SDK路径)

添加上述两个变量。我的问题就是这样解决的。

英文:

Download the latest java sdk. Then go the environment variables. Inside the User variables for User, add two variables.

  1. JAVA_HOME => C:\Program Files\Java\jdk-20 (Paste your sdk path)
  2. JDK_HOME => C:\Program Files\Java\jdk-20 (Paste your sdk path)

Add the above two variables. My problem was solved this way.

huangapple
  • 本文由 发表于 2023年3月9日 23:39:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/75686861.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定