You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Expo 51执行run:android时出现Unsupported class file major version 66错误

解决"Unsupported class file major version 66"错误的方案

错误原因

Unsupported class file major version 66对应JDK 22的类文件版本,你当前使用的JDK 20无法兼容该版本的编译产物,而Expo 51对JDK 20的支持不完善,是导致报错的核心原因。


具体解决步骤

1. 全局降级JDK到17(推荐方案)

Expo官方长期支持JDK 17(LTS版本),兼容性最好:

  • 卸载当前JDK 20,安装OpenJDK 17或Oracle JDK 17
  • 配置系统环境变量:将JAVA_HOME指向JDK 17的安装目录,同时将JDK 17的bin路径移到Path环境变量的最前面
  • 验证:打开新终端执行java -version,确认输出显示JDK 17的版本信息

2. 为项目单独指定JDK版本

如果不想修改全局JDK环境,可以在项目内配置Gradle使用JDK 17:

  • 在项目根目录创建gradle.properties文件(若已存在则直接编辑),添加以下内容:
org.gradle.java.home=C:\\Program Files\\Java\\jdk-17.x.x

注意替换为你实际的JDK 17安装路径,路径需使用双反斜杠或正斜杠

3. 清理Gradle缓存

缓存损坏可能引发兼容性问题,执行以下命令清除本地Gradle缓存:

rmdir /s %USERPROFILE%\.gradle\caches

清除完成后重新执行npx expo run:android

4. 调整Gradle版本适配JDK

若上述方法无效,手动调整项目的Gradle版本:

  • 打开android/build.gradle文件,找到dependencies块中的Gradle插件版本,修改为兼容JDK 17的版本,例如:
dependencies {
    classpath("com.android.tools.build:gradle:7.4.2")
    // 其他依赖...
}
  • 打开android/gradle/wrapper/gradle-wrapper.properties,修改distributionUrl为对应版本的Gradle包:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-all.zip

内容的提问来源于stack exchange,提问作者Codeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:32:09