运行libgdx示例gdx-invaders for desktop时的java.lang.NoClassDefFoundError

时间:2013-09-25 09:02:13

标签: android gwt libgdx noclassdeffounderror

我正在构建libgdx的gdx-invaders示例。有两个项目:   gdx-invaders - 基础项目,作为桌面Java应用程序运行   gdx-invaders-android 项目 - 依赖于gdx-invaders,并作为Android应用程序运行

我是Eclipse的新手,但基于我能找到的最好的教程,采取适当的步骤让这两个项目引用相应的库(gdx.jar等),并使用Android 2.2获取它们。我还尝试了在构建之前进行清理等基本修复,并重新启动Eclipse。

现在,gdx-invaders构建了,但是当它运行时,我得到了这个运行时异常:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWT
    at com.badlogic.gwtref.client.ReflectionCache.<clinit>(ReflectionCache.java:24)
    at com.badlogic.gdx.utils.reflect.ArrayReflection.newInstance(ArrayReflection.java:11)
    at com.badlogic.gdx.utils.Array.<init>(Array.java:64)
    at com.badlogic.gdx.backends.openal.OpenALAudio.<init>(OpenALAudio.java:51)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:82)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(LwjglApplication.java:64)
    at com.badlogic.gdxinvaders.GdxInvadersDesktop.main(GdxInvadersDesktop.java:27)

并且gdx-invaders-android根本没有构建 - 它无法引用包com.badlogic.gdxinvaders(在gdx-invaders中定义的包),这会在尝试引用GdxInvaders时导致编译器错误,该包中定义的类。

构建库来自libgdx-nightly-latest发行版。你们是否更喜欢将JAR从这里复制到我的基础项目的lib目录中,并在这里使用Add Jars引用JAR,或者更好地使用Add External JARS并在libgdx-nightly-latest中引用它们?目录

谢谢! 亚伦

1 个答案:

答案 0 :(得分:2)

您必须将gdx项目添加到java构建路径中的项目选项卡中。您必须将jpct_ae.jar和jpct_shaders.zip包含在项目构建路径中。