升级Android Studio后LibGDX项目DesktopLauncher无法初始化报错
解决方法
这个NoClassDefFoundError和JDK版本没有直接关系,是Android Studio Chipmunk调整了非安卓模块的运行类路径加载逻辑导致的——安卓端走AGP独立构建流程不受影响,桌面端运行时默认不会拉取Gradle声明的依赖,自然找不到LibGDX的核心类。按下面的顺序操作即可:
- 先修改运行配置:打开DesktopLauncher对应的运行配置,点击
Modify options,勾选Add dependencies with "Provided" scope to classpath,同时确认Use classpath of module选中的是你的desktop模块,不要选成core模块,改完直接运行,大部分同类问题这一步就能解决。 - 如果第一步无效,检查desktop模块的build.gradle文件,确认
:core模块和gdx桌面后端依赖用的是implementation而非compileOnly,正确的依赖块写法参考:
改完点击Gradle面板的刷新按钮同步项目后再尝试运行。dependencies { implementation project(":core") implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" } - 仍然报错就清理IDE缓存:依次点击顶部菜单
File > Invalidate Caches...,勾选清除文件系统缓存和本地历史,等待IDE重启、Gradle同步完成后再启动桌面端。 - 不要直接点击代码行旁的绿色运行箭头自动生成临时配置,手动新建Application类型的运行配置:主类填写你自己的DesktopLauncher全类名,工作目录选择项目下的assets文件夹,类路径手动指定desktop模块,用这个手动创建的配置启动即可。
额外说明:LibGDX 1.10和1.11版本桌面端用JDK 11兼容性最好,不用反复切换其他版本,安卓模块使用AGP自带的JDK即可,两边配置不冲突。
内容的提问来源于stack exchange,提问作者Tekkerue
相关产品推荐
相关产品推荐

