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
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:473)
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:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2729)
at java.lang.Class.privateGetMethodRecursive(Class.java:3076)
at java.lang.Class.getMethod0(Class.java:3046)
at java.lang.Class.getMethod(Class.java:1812)
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 (/Users/pan/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager): "exited code
1".
Try re-installing or updating your Android SDK,
visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
这个错误是因为你的系统上的Java版本太低。在你的错误日志中,它说“this version of the Java Runtime only recognizes class file versions up to 52.0”,而你的AndroidLocationsProvider
类编译时所使用的Java版本更高(class file version 55.0)。因此,你需要升级你的Java版本。
Java的版本和class file version的对应关系如下:
- Java SE 11 = 55
- Java SE 10 = 54
- Java SE 9 = 53
- Java SE 8 = 52
你的环境需要的是55,对应Java SE 11,但是你当前环境的版本是52,对应Java SE 8。
以下是更新Java版本的步骤:
-
首先,你可以通过运行
java -version
来检查当前的Java版本。 -
你可以访问Oracle的Java下载页面(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)来下载Java SE 11。
-
下载相应的文件,并按照指示进行安装。
-
安装完成后,通过再次运行
java -version
来确认是否成功更新。
这应该可以解决你的问题。如果问题仍然存在,你可能需要确认你的PATH环境变量是否正确设置,或者你可能需要更新Android SDK的位置。