配置JAVA_HOME与Android SDK命令行工具后仍遇JNI错误求助
问题分析与解决方案
问题根源
你遇到的UnsupportedClassVersionError是Java版本不兼容导致的:
- 报错中的
class file version 55.0对应Java 11(即该类是用Java 11编译的) - 你当前使用的Java 8(1.8.0)仅支持最高
class file version 52.0,无法识别Java 11编译的类文件
解决方案
- 安装Java 11或更高版本(Android SDK命令行工具的新版依赖Java 11+环境)
- 更新系统环境变量:
- 修改
JAVA_HOME,使其指向新安装的Java 11目录 - 将Java 11的
bin目录(如C:\Program Files\Java\jdk-11.x.x\bin)移到系统PATH的最顶端,确保系统优先调用新Java版本
- 修改
- 验证配置:打开新的命令行窗口,执行以下命令确认版本:
输出需显示Java 11及以上版本java -version javac -version - 重新执行Android SDK相关操作
附:你提供的报错与版本信息
报错信息
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: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)
当前Java版本
java version "1.8.0_351" Java(TM) SE Runtime Environment (build 1.8.0_351-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)
当前javac版本
javac 1.8.0_351
内容的提问来源于stack exchange,提问作者Mahan
相关产品推荐
相关产品推荐

