【问题标题】:java.lang.NoClassDefFoundError (libgdx)java.lang.NoClassDefFoundError (libgdx)
【发布时间】:2014-09-24 16:28:56
【问题描述】:

一直在尝试使用 Libgdx 框架,但遇到了一些令人沮丧的问题。我正在学习教程,但无法运行我的项目。我做错了什么?

package com.mygdx.game.android;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class AndroidLauncher implements ApplicationListener {

    SpriteBatch batch;
    Texture mario;


    @Override
    public void create() {
        batch = new SpriteBatch();

        mario = new Texture(Gdx.files.internal("mario.png"));
    }

    @Override
    public void resize(int width, int height) {
        // TODO Auto-generated method stub

    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(1,1,1,1);


        batch.begin();
        batch.draw(mario, 50, 50);
        batch.end();



    }

    @Override
    public void pause() {
        // TODO Auto-generated method stub

    }

    @Override
    public void resume() {
        // TODO Auto-generated method stub

    }

    @Override
    public void dispose() {
        // TODO Auto-generated method stub

    }

}

这是我运行项目时控制台显示的内容:

Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/jnigen/NativeCodeGenerator
    at com.badlogic.gdx.utils.GdxBuild.main(GdxBuild.java:34)
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.jnigen.NativeCodeGenerator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 1 more

【问题讨论】:

  • 您是否尝试在 Android 上构建和运行它?

标签: java android frameworks libgdx


【解决方案1】:

我遇到了同样的问题,但意识到我正在运行 GdxBuild。确保您右键单击 DesktopLauncher.java > Run As > Java Application。

【讨论】:

    【解决方案2】:

    就我而言,这是我的第一个 libGDX 项目,我在 KUBUNTU 上使用 Android Studio 版本 3.0.1 运行它,并在导入新创建的项目使用 gdx-setup.jar (Setup App) 到 Android Studio,弹出消息要求我更新 Gradle,我这样做了,这破坏了项目。

    解决方案: 创建一个新的 libGDX 项目并将其导入而不更新 Gradle(单击“不要再次提醒我此项目”),它应该可以工作。

    【讨论】:

      【解决方案3】:

      右击项目-属性-构建选项-排序和导出并检查所有gdx库。大概就是这样,当它在运行时找不到类时就会出现该错误。

      【讨论】:

      • 不幸的是,这不是问题所在。已经尝试过了,但它没有解决任何问题(库已经被检查过)。虽然,我只有一个 gdx 库(my-gdx-game-core [Builder])可供检查.. 这正常吗?
      • 错误提示找不到类,确实遵循了一些教程,如果有,请提供链接我可以查看它
      • 是的,我按照教程设置了 gradle 和 libgdx,并在导入测试项目 (my-gdx-game-android) 等之后。一切似乎都运行良好。当我到达这一点时,我开始遇到问题youtube.com/…
      【解决方案4】:

      我遇到了同样的问题,唯一可以重现它的方法是使用桌面配置。因此,不要使用桌面配置,而是将其作为 gradle 配置运行。在命令行中,这将是:

      gradlew desktop:run
      

      由于每次要运行项目时手动执行此操作很痛苦,因此请创建一个新的 Gradle 运行配置

      如果您在运行配置中选择 Gradle 项目作为子模块,则您只需键入 gradlew run 而不是 gradlew desktop:run

      您必须在 VM 选项输入中定义内存标志(但不必具有这些值):

      -Xmx2G -Xms128M
      

      脚本参数可以保留为空。请注意,这整个过程都算作一个 Gradle 构建,因此您必须先终止该进程(如果它正在运行),然后才能启动一个新进程。

      我可以毫无问题地导出一个罐子,所以你在生产中应该没问题。

      TL:DR; 使用带有 gradlew desktop:run 的 Gradle 运行配置,而不是使用应用程序

      【讨论】:

        【解决方案5】:

        这么多不同的答案。我没有跟随他们,而是创建了一个新项目。尽可能简单;如果升级 IntelliJ 会破坏我的项目,我希望在 2018 年减少未使用的功能。

        我得到了

        java.lang.ClassNotFoundException: com.badlogic.gdx.ApplicationListener ...

        Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.ApplicationListener ...

        在将 IntelliJ 从 2017.3 升级到 2018.1 之后。

        这次我没有勾选任何方框:

        对于“高级”设置也是如此:

        在没有选择 IDEA 的情况下,该项目需要 10 秒才能生成,并给出了有关如何导入的不同说明,这些说明取得了明显更大的成功(旧的方法是最容易记住的,Eclipse 有人吗?)。

        当然,我还遇到了一些错误,但在启动一个新项目之前,我没有克服任何错误。之后,只需复制旧文件即可。还有一个提示,无论 IntelliJ 提供什么设置来将您的 Java 级别设置为 1.7,Gradle 文件都不会被触及,因此您必须手动搜索剩余的 1.6 引用。

        【讨论】:

          【解决方案6】:

          右键->运行方式->运行配置->点击左侧菜单中的Desktop-Launcher,然后点击运行,这样应该就可以解决了。

          【讨论】:

            【解决方案7】:

            项目结构 -> 模块 -> 选择需要的模块(桌面、安卓等) -> 依赖项 -> 添加库。

            不要忘记将范围从“提供”更改为“编译”。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-06-19
              • 1970-01-01
              • 1970-01-01
              • 2015-07-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多