在Idea最近升级之后,我现在在代码中得到一个ClassNotFoundException,就在前一天工作正常。
如果我在命令行中运行gradle它运行正常,但如果我在Idea中运行它会因ClassNotFoundException而失败。
我已经搜索了问题,似乎其他人也有类似的问题,但为他们提出的解决方案似乎对我不起作用。
我认为它可能是最新版本的Idea的类路径和/或gradle问题,但我无法确切地看到问题是什么,因为我最近才转移到Idea和来自Eclipse和Maven的Gradle。我的一般Java经验非常好。
完整堆栈跟踪如下:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoClassDefFoundError: com/badlogic/gdx/physics/box2d/Shape
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:130)
Caused by: java.lang.NoClassDefFoundError: com/badlogic/gdx/physics/box2d/Shape
at uk.co.redfruit.gdx.skyisfalling.listeners.PlayButtonListener.changed(PlayButtonListener.java:18)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:181)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:146)
at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:123)
at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:91)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:58)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:354)
at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:316)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:210)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:123)
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.physics.box2d.Shape
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 12 more