Unity更新Android SDK包列表失败及JNI版本不兼容问题求助
解决Unity 2020.3.17f1构建Android时SdkManagerCli版本不兼容问题
问题本质
你遇到的java.lang.UnsupportedClassVersionError是版本不匹配导致的:SdkManagerCli的类文件版本61.0对应Java 17,但Unity 2020.3.x默认依赖的是Java 8(JRE版本52.0),高版本编译的类文件无法被低版本JRE解析。这是因为你用Android Studio更新的新版cmdline-tools基于高版本Java编译,和旧版Unity的JDK环境不兼容。
可行解决方案
1. 回退cmdline-tools到兼容版本
- 打开Android Studio的SDK Manager,切换到SDK Tools标签
- 取消勾选已安装的高版本cmdline-tools(比如10.0及以上),勾选cmdline-tools:8.0(该版本兼容Java 8),点击Apply完成安装
- 确保Unity的SDK路径指向包含此8.0版本cmdline-tools的SDK目录
2. 给Unity指定Java 8 JDK
- 打开Unity,进入
Edit > Preferences > External Tools - 在Android区域,找到JDK选项,选择本地的Java 8 JDK路径(不要使用Android Studio自带的高版本JDK)
- 确认SDK路径为你刚更新的目录
3. 清理Unity缓存重置环境
- 关闭Unity,删除项目根目录下的Library文件夹
- 重新打开Unity,等待项目重新生成缓存
- 尝试再次构建项目
4. 手动配置SdkManager路径(备选)
如果上述步骤无效,找到SDK目录下的cmdline-tools/8.0/bin路径,将其添加到系统环境变量的PATH中
- 重启电脑后,在Unity的Terminal中输入
sdkmanager --list,能正常输出包列表即说明配置生效
验证步骤
构建前进入Edit > Project Settings > Player > Android > Other Settings,确认API Level设置为23或27,然后点击Check Requirements,无报错则说明环境配置正确。
内容的提问来源于stack exchange,提问作者Ahmad_Coffee
相关产品推荐
相关产品推荐

