Unity 2D游戏构建Android包时出现NoClassDefFoundError报错求助
Unity Android打包报错解决方案
问题根因
该报错由JDK版本与Android SDK Tools版本不兼容导致:你所用的Unity 2019.4版本自带的旧版Android SDK中,sdkmanager工具依赖JDK 8内置的JAXB(Java XML绑定)模块,而你当前配置的JDK为9及以上版本,这类高版本JDK默认移除了JAXB模块,调用sdkmanager时就会抛出javax.xml.bind.annotation.XmlSchema类不存在的异常,最终导致SDK包列表更新失败、打包中止。
解决步骤
- 优先使用Unity内置JDK
打开Unity菜单栏Edit > Preferences > External Tools(Mac系统路径为Unity > Settings > External Tools),找到Android开发工具配置区域,勾选JDK Installed with Unity(recommended)选项,保存设置后重新执行Build and Run操作即可。 - 手动指定JDK 8路径
若你需要使用自定义JDK环境,可下载安装OpenJDK 8或Oracle JDK 8,回到上述External Tools面板,将JDK路径修改为JDK 8的安装根目录,保存后重试打包。 - 备选方案(仅适用于必须使用高版本JDK的场景)
下载JAXB相关依赖包(jaxb-api、jaxb-impl、jaxb-core、javax.activation),将jar包放入Android SDK tools目录下的lib文件夹中,重启Unity后重试打包。
内容的提问来源于stack exchange,提问作者Jitesh
相关产品推荐
相关产品推荐

