React Native编译报错:Unsupported class file major version 66解决方法
React Native Android编译错误(Unsupported class file major version 66)解决方法
错误核心原因
Unsupported class file major version 66 说明当前使用的Gradle 8.6版本不兼容你系统中的Java 22(major version 66对应Java 22),Gradle与Java版本存在兼容性不匹配问题。
解决方法
方法一:降级Java版本至Gradle 8.6支持范围
Gradle 8.6支持Java 11到Java 21,推荐使用Java 17(LTS稳定版):- 卸载系统中已安装的Java 22
- 下载并安装Java 17(OpenJDK或Oracle JDK均可)
- 配置系统环境变量:将
JAVA_HOME指向Java 17安装目录,确保PATH中优先包含Java 17的bin目录 - 验证版本:打开命令行执行
java -version,确认输出为Java 17 - 清理Gradle缓存:删除路径
C:\Users\subug\.gradle\caches\8.6,重新运行项目
方法二:升级Gradle版本以支持Java 22
若需保留Java 22,需升级Gradle至8.7及以上版本(该版本开始支持Java 22):- 打开项目的
android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip - 打开
android/build.gradle文件,更新Gradle插件版本(Gradle 8.7对应AGP 8.3.0及以上):dependencies { classpath 'com.android.tools.build:gradle:8.3.0' // 其他依赖项 } - 删除
C:\Users\subug\.gradle\caches下旧版本缓存目录,重新运行项目
- 打开项目的
方法三:项目内指定兼容Java版本(临时方案)
无需修改全局Java版本,仅为当前项目指定兼容版本:- 打开
android/build.gradle文件,在android代码块中添加:compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } - 确保系统已安装Java 17,在VS Code终端临时设置环境变量:
set JAVA_HOME=C:\你的Java17安装路径 set PATH=%JAVA_HOME%\bin;%PATH% - 重新启动React Native项目
- 打开
内容的提问来源于stack exchange,提问作者Subramaniyan
相关产品推荐
相关产品推荐

