Libgdx SpriteBatch在桌面端出现UnsatisfiedLinkError错误。

8
在LibGdx项目中,我尝试运行桌面独立版本时出现了UnsatisfiedLinkError错误。请注意,如果我直接运行桌面版本而不构建独立的jar文件,则不会出现此问题,只有在先构建桌面jar文件,然后尝试运行该文件时才会出现此问题。值得注意的是,直接运行桌面版本要容易得多,直到我找到一堆jar文件并将它们手动添加到LibGdx项目之前,我甚至无法靠近运行独立桌面jar。
我正在使用Android Studio 3.3,gradle 4.10和Java 1.8.0_201在Windows 10 x64上,并使用以下'gradle'命令部署了我的LibGdx应用程序的版本到桌面:
gradle desktop:dist
然后,在从ProjectRoot输入命令行后运行由此创建的jar文件:
cd desktop/build/libs,然后java -jar desktop-1.0.jar 这样做时,我会收到一个UnsatisfiedLinkError错误。
我尝试将jar文件复制到Linux并在那里进行测试,但我得到了相同的错误。
我做了一些搜索,并发现一个建议可能是new SpriteBatch()的调用发生得太早了:
即在核心模块中的create()函数之前,但那不是问题,因为new SpriteBatch()的调用从来没有比那更早。
此外,该链接中使用LibGdx Setup Generator的建议对我没有帮助,因为我已经使用了该LibGdx Setup Generator GUI工具来创建这个相同的项目,并且我仍然遇到了这个问题。
我注意到程序输出显示它在new SpriteBatch()的调用上抛出了UnsatifisedLinkError异常,正如该链接所指出的,但它是从create()函数中调用的,而不是比那更早。
我做了一个实验,发现如果我完全删除new SpriteBatch()的调用以及所有依赖该调用的代码,例如创建纹理和使用精灵批处理程序来绘制该纹理。我发现通过这样做,程序可以运行而不会出现错误,当然这样我也无法以这种方式绘制任何东西。
所以,我进行了另一个实验,并按以下方式将new SpriteBatch()调用从create函数中移出并移到render()函数中,正如您在代码中所注意到的那样。我只是尝试在每次执行render()函数时创建SpriteBatch(),如果它尚未被创建,并输出它抛出UnsatisfiedLinkError exception的次数。

-------------------------MyGdxGame.java--------------------------------------

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGdxGame extends ApplicationAdapter {
    SpriteBatch batch;
    Texture img;
    long numAttempts = 0;

    @Override
    public void create () {

    }

    @Override
    public void render () {

        if (batch == null) {
            try {
                batch = new SpriteBatch();
            } catch (UnsatisfiedLinkError error) {
                System.out.println("Failed create SpriteBatch attempt #" + numAttempts);
                ++numAttempts;
            }

            if (batch != null) {
                img = new Texture("badlogic.jpg");
            }
        }

        Gdx.gl.glClearColor(1, 1, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        //batch.begin();
        //batch.draw(img, img.getWidth(), 0);
        //batch.end();
    }

    @Override
    public void dispose () {
        //batch.dispose();
        //img.dispose();
    }
}

那段代码最终生成了如下输出:
Failed create SpriteBatch attempt #0
Failed create SpriteBatch attempt #1
Failed create SpriteBatch attempt #2
Failed create SpriteBatch attempt #3
Failed create SpriteBatch attempt #4
Failed create SpriteBatch attempt #5
Failed create SpriteBatch attempt #6
Failed create SpriteBatch attempt #7
Failed create SpriteBatch attempt #8
Failed create SpriteBatch attempt #9
Failed create SpriteBatch attempt #10
Failed create SpriteBatch attempt #11
Failed create SpriteBatch attempt #12

而且如果我让应用程序继续运行,它似乎会一直说“Failed create SpriteBatch attempt #...”,如您所见,似乎无论渲染帧数有多少次,new SpriteBatch()都会抛出UnsatifiedLinkError异常,因此这显然不是因为我在程序中过早调用了new SpriteBatch()导致的问题。我还从这里看到了另一个建议,针对桌面版本,我应该做类似于这样的操作:
static {
    GdxNativesLoader.load();
}

还有一个我不记得在哪里看到的建议:

LwjglNativesLoader.load();

所以我尝试过这两种方法,虽然不是同时进行的,但都没有成功。我是通过将它们放在DesktopLauncher文件中来实现的:

--------DesktopLauncher.java-------------------------------------------

package com.mygdx.game.desktop;

import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.badlogic.gdx.backends.lwjgl.LwjglNativesLoader;
import com.badlogic.gdx.utils.GdxNativesLoader;
import com.mygdx.game.MyGdxGame;

public class DesktopLauncher {

    static {
        //GdxNativesLoader.load(); // I tried with this line of code
        //LwjglNativesLoader.load(); // and separately with this line
    }

    public static void main (String[] arg) {

        //GdxNativesLoader.load(); // and separately with this line, here

        //LwjglNativesLoader.load(); // and separately with this line, here


        LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

        new LwjglApplication(new MyGdxGame(), config);
    }
}

这些都没有解决问题。我记得看到一些链接,建议可能是我的gdx本地jar包与我的gdx jar包不匹配,但我不确定如何检查,但我将展示我添加到desktop/libs文件夹和我的gradle.build文件中的jar列表:

--------jar文件:

core-1.0.jar
desktop-1.0.jar
gdx-1.9.9.jar
gdx-backend-lwjgl-1.9.9.jar
gdx-backend-lwjgl-natives.jar
gdx-natives.jar
gdx-openal.jar
gdx-platform-1.9.9.jar
jinput-2.0.5.jar
jinput-platform-2.0.5-natives-linux.jar
jinput-platform-2.0.5-natives-osx.jar
jinput-platform-2.0.5-natives-windows.jar
jutils-1.0.0.jar
lwjgl-2.9.0.jar
lwjgl-2.9.2.jar
lwjgl-3.2.1.jar
lwjgl-openal-3.2.1.jar
lwjgl-platform-2.9.2-natives-linux.jar
lwjgl-platform-2.9.2-natives-osx.jar
lwjgl-platform-2.9.2-natives-windows.jar

这是我的build.gradle文件中包含的我需要手动添加的jar文件的部分内容,以便让我的LibGdx版本的桌面独立版能够运行:

----我的build.gradle文件的一部分-----------

project(":desktop") {

    apply plugin: "java"

    dependencies {
        implementation project(":core")

        // ... a bunch of irrelevant implementation lines here

        compile files("libs/gdx-1.9.9.jar")
        compile files("libs/gdx-backend-lwjgl-1.9.9.jar")
        compile files("libs/lwjgl-2.9.0.jar")
        compile files("libs/core-1.0.jar")
        compile files("libs/desktop-1.0.jar")
        compile files("libs/gdx-natives.jar")

        // Noticed I commented these ones out
        // compile files("libs/gdx-backend-lwjgl-natives.jar")
        //compile files("libs/gdx-platform-1.9.9.jar")
        //compile files("libs/lwjgl-3.2.1.jar")

        compile files("libs/lwjgl-openal-3.2.1.jar")
        compile files("libs/jinput-2.0.5.jar")

        // Noticed I also commented out these
        //compile files("libs/jinput-platform-2.0.5-natives-linux.jar")
        //compile files("libs/jinput-platform-2.0.5-natives-osx.jar")
        //compile files("libs/jinput-platform-2.0.5-natives-windows.jar")
        //compile files("libs/jinput-1.0.0.jar")

        compile files("libs/jutils-1.0.0.jar")
        compile 'org.lwjgl.lwjgl:lwjgl:2.9.2'
        compile files("libs/lwjgl-2.9.2.jar")
        compile files("libs/lwjgl-platform-2.9.2-natives-linux.jar")
        compile files("libs/lwjgl-platform-2.9.2-natives-osx.jar")
        compile files("libs/lwjgl-platform-2.9.2-natives-windows.jar")
    }
}

如果你想知道,我总是确保我的core-1.0.jardesktop-1.0.jar是最新的,通过构建我的桌面版本,将这些jar文件复制到desktop/libs文件夹中,然后重新构建,所以这不是问题的一部分。
无论如何,在所有这些研究和实验之后,我仍然没有找到问题的原因和解决方案。任何帮助都将不胜感激,非常感谢!
发布编辑:
我的类路径是:
0: C:\Program Files\Java\jdk1.8.0_201\jre\lib\charsets.jar
1: C:\Program Files\Java\jdk1.8.0_201\jre\lib\deploy.jar
2: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\access-bridge-64.jar
3: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\cldrdata.jar
4: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\dnsns.jar
5: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jaccess.jar
6: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\jfxrt.jar
7: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\localedata.jar
8: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\nashorn.jar
9: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunec.jar
10: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunjce_provider.jar
11: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunmscapi.jar
12: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\sunpkcs11.jar
13: C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext\zipfs.jar
14: C:\Program Files\Java\jdk1.8.0_201\jre\lib\javaws.jar
15: C:\Program Files\Java\jdk1.8.0_201\jre\lib\jce.jar
16: C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfr.jar
17: C:\Program Files\Java\jdk1.8.0_201\jre\lib\jfxswt.jar
18: C:\Program Files\Java\jdk1.8.0_201\jre\lib\jsse.jar
19: C:\Program Files\Java\jdk1.8.0_201\jre\lib\management-agent.jar
20: C:\Program Files\Java\jdk1.8.0_201\jre\lib\plugin.jar
21: C:\Program Files\Java\jdk1.8.0_201\jre\lib\resources.jar
22: C:\Program Files\Java\jdk1.8.0_201\jre\lib\rt.jar
23: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\build\classes\java\main
24: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\build\classes\kotlin\main
25: C:\Users\me\AndroidStudioProjects\TestHtml\core\build\classes\java\main
26: C:\Users\me\.gradle\caches\modules-2\files-2.1\de.tomgrill.gdxdialogs\gdx-dialogs-core\1.2.5\c55ef7e82d013ea7d99a66dcbdc24cfa7127337e\gdx-dialogs-core-1.2.5.jar
27: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.box2dlights\box2dlights\1.4\3d77ad5b4164fb32fc67e2446e35911bb0aaf0bd\box2dlights-1.4.jar
28: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils-box2d\0.13.4\918d79a20ea3c898cdb3611782c5b2bfa6ec575b\libgdx-utils-box2d-0.13.4.jar
29: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d\1.9.9\e9a43c50fbe4f1e26dd0af5d2e78d125549e7f6b\gdx-box2d-1.9.9.jar
30: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.ashley\ashley\1.7.0\a7c4083c0a42027a3c03ba7ccecef6cbe1c5f0a4\ashley-1.7.0.jar
31: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-ai\1.8.0\ec30677d8ab1a8b8aa4b853c5f4e4b1361f50bf5\gdx-ai-1.8.0.jar
32: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-controllers\1.9.9\55b69a040e076b17d01a5057f9cb2ce338a3331a\gdx-controllers-1.9.9.jar
33: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.github.czyzby\gdx-lml-vis\1.9.1.9.6\951c197ebe8c9644bd555722c449fa4cfda527fb\gdx-lml-vis-1.9.1.9.6.jar
34: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.kotcrab.vis\vis-ui\1.3.0\639741faa66a560197ee06a9412949402c831796\vis-ui-1.3.0.jar
35: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.dermetfan.libgdx-utils\libgdx-utils\0.13.4\27affad2873d1c9c366a2290fc51f3927f3a5f83\libgdx-utils-0.13.4.jar
36: C:\Users\me\.gradle\caches\modules-2\files-2.1\de.tomgrill.gdxfacebook\gdx-facebook-core\1.4.1\1b5d4948b033a4b9a8f360d0fa76c49e6e17baec\gdx-facebook-core-1.4.1.jar
37: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx\1.9.9\bf26f2f816b3cfe37ac6e66615391c30714b7030\gdx-1.9.9.jar
38: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.esotericsoftware.spine\spine-libgdx\3.6.53.1\281f862762c15a8f8a79443a57526f4238b52b8e\spine-libgdx-3.6.53.1.jar
39: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.github.czyzby\gdx-lml\1.9.1.9.6\2590018dd6fc37566e3998db2cc2ecce0155c3b4\gdx-lml-1.9.1.9.6.jar
40: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.github.czyzby\gdx-kiwi\1.9.1.9.6\c00391b240ccf1212f3acd2095b6df489d4ff281\gdx-kiwi-1.9.1.9.6.jar
41: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-tools\1.9.9\55228989f0479dd4bbe487766eda15e5d512c51e\gdx-tools-1.9.9.jar
42: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-lwjgl\1.9.9\ca8911cb94c0bfeb59f99e46ca9b92440958fb0e\gdx-backend-lwjgl-1.9.9.jar
43: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl_util\2.9.2\4b9e37300a87799856e0bd15ed81663cdb6b0947\lwjgl_util-2.9.2.jar
44: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl\2.9.2\a9d80fe5935c7a9149f6584d9777cfd471f65489\lwjgl-2.9.2.jar
45: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-platform\1.9.9\7e644cfafdb436b13b24ac7993ffab17f306b64d\gdx-platform-1.9.9-natives-desktop.jar
46: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-box2d-platform\1.9.9\72b2916f45f3f948896eda931cd597f7e698340f\gdx-box2d-platform-1.9.9-natives-desktop.jar
47: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-controllers-desktop\1.9.9\d4b8b62f077382db145e7a94a27a994b68ce6ee\gdx-controllers-desktop-1.9.9.jar
48: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-controllers-platform\1.9.9\26b8735060fdfd7dc6529cf5085fa57144a349d9\gdx-controllers-platform-1.9.9-natives-desktop.jar
49: C:\Users\me\.gradle\caches\modules-2\files-2.1\de.tomgrill.gdxfacebook\gdx-facebook-desktop\1.4.1\709e9a585082d7b875540d33ee3a4f4787ea74c3\gdx-facebook-desktop-1.4.1.jar
50: C:\Users\me\.gradle\caches\modules-2\files-2.1\de.tomgrill.gdxdialogs\gdx-dialogs-desktop\1.2.5\233048054a845d7a59d86c54e9d74f95749f74b5\gdx-dialogs-desktop-1.2.5.jar
51: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.20\b1f3cb184c4ce4139741454df2f8fca5320f822d\kotlin-stdlib-jdk8-1.3.20.jar
52: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.2\510c7d317f5e9e700b9cfaac5fd38bdebf0702e0\lwjgl-platform-2.9.2-natives-windows.jar
53: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.2\d276cdf61fe2b516c7b7f4aa1b8dea91dbdc8d56\lwjgl-platform-2.9.2-natives-linux.jar
54: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.2\d55b46b40b40249d627a83a7f7f22649709d70c3\lwjgl-platform-2.9.2-natives-osx.jar
55: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput\2.0.5\39c7796b469a600f72380316f6b1f11db6c2c7c4\jinput-2.0.5.jar
56: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-backend-headless\1.9.9\657d1d232f274162eb8fd600a137b2221f2fc9c\gdx-backend-headless-1.9.9.jar
57: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.gdx\gdx-freetype\1.9.9\d947872087863b654d9a0e27a8cb10a29d6fd3d6\gdx-freetype-1.9.9.jar
58: C:\Users\me\.gradle\caches\modules-2\files-2.1\com.badlogicgames.jlayer\jlayer\1.0.1-gdx\7cca83cec5c1b2f011362f4d85aabd71a73b049d\jlayer-1.0.1-gdx.jar
59: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jcraft\jorbis\0.0.17\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\jorbis-0.0.17.jar
60: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.20\aa17d6fd473ce53061a7b2b9d2ae96f547cae93d\kotlin-stdlib-jdk7-1.3.20.jar
61: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.20\eb2a232734e09fcd1b958a5c7520a93c6de38b32\kotlin-stdlib-1.3.20.jar
62: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.java.jutils\jutils\1.0.0\e12fe1fda814bd348c1579329c86943d2cd3c6a6\jutils-1.0.0.jar
63: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\7ff832a6eb9ab6a767f1ade2b548092d0fa64795\jinput-platform-2.0.5-natives-linux.jar
64: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\385ee093e01f587f30ee1c8a2ee7d408fd732e16\jinput-platform-2.0.5-natives-windows.jar
65: C:\Users\me\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\53f9c919f34d2ca9de8c51fc4e1e8282029a9232\jinput-platform-2.0.5-natives-osx.jar
66: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.20\7d7934e26ce34da1a0a8d00e38038d7cf3375e89\kotlin-stdlib-common-1.3.20.jar
67: C:\Users\me\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar
68: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\core-1.0.jar
69: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\gdx-natives.jar
70: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\lwjgl-3.2.1.jar
71: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\lwjgl-natives-linux.jar
72: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\lwjgl-natives-macos.jar
73: C:\Users\me\AndroidStudioProjects\TestHtml\desktop\libs\lwjgl-natives-windows.jar
74: C:\Program Files\Android\Android Studio\lib\idea_rt.jar

更新:

我的完整的build.gradle桌面模块:

   project(":desktop") {
    //apply plugin: "application"
    //mainClassName = "DesktopLauncher"
    apply plugin: "java"


    dependencies {
        implementation project(":core")
        implementation "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
        implementation "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
        implementation "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
        implementation "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion"
        implementation "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop"
        implementation "de.tomgrill.gdxfacebook:gdx-facebook-desktop:1.4.1"
        implementation "de.tomgrill.gdxdialogs:gdx-dialogs-desktop:1.2.5"

        //implementation "com.badlogicgames.gdx:gdx:1.9.9"
        compile files("libs/gdx-1.9.9.jar")
        compile files("libs/gdx-backend-lwjgl-1.9.9.jar")
        //compile files("libs/lwjgl-2.9.0.jar")
        compile files("libs/core-1.0.jar")
        //compile files("libs/desktop-1.0.jar")
        compile files("libs/gdx-natives.jar")
        // compile files("libs/gdx-backend-lwjgl-natives.jar")
        //compile files("libs/gdx-platform-1.9.9.jar")
        //compile files("libs/lwjgl-3.2.1.jar")

        /*
        compile files("libs/lwjgl-openal-3.2.1.jar")
        compile files("libs/jinput-2.0.5.jar")
        compile files("libs/jinput-platform-2.0.5-natives-linux.jar")
        compile files("libs/jinput-platform-2.0.5-natives-osx.jar")
        compile files("libs/jinput-platform-2.0.5-natives-windows.jar")
        */

        //compile files("libs/jinput-1.0.0.jar")

        compile files("libs/jutils-1.0.0.jar")


        compile 'org.lwjgl.lwjgl:lwjgl:2.9.2'
        compile files("libs/lwjgl-3.2.1.jar")

        compile files("libs/lwjgl-platform-2.9.2-natives-linux.jar")
        compile files("libs/lwjgl-platform-2.9.2-natives-osx.jar")
        compile files("libs/lwjgl-platform-2.9.2-natives-windows.jar")

        compile files("libs/lwjgl-natives-linux.jar")
        compile files("libs/lwjgl-natives-macos.jar")
        compile files("libs/lwjgl-natives-windows.jar")
    }
}

我的之前的回答并不是你问题的解决方案。它并没有错误,但我没有考虑到libgdx应该已经打包了本地文件这一事实。 - Dylan
也许可以尝试使用以下工具重新创建项目:https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle - Dylan
谢谢,但那个工具就是我用来创建项目的工具。 - user904542
@Dylan,我更新了我的问题,展示了在我的Java类路径中的路径,这些路径是通过检查System.getProperty("java.class.path")获得的。 - user904542
@Dylan,这个问题现在有一个新的100分悬赏。 - user904542
显示剩余4条评论
1个回答

3
请将build.gradle的内容更改为以下内容,再次同步gradle并检查一次。
project(":desktop") {
    apply plugin: "java"


    dependencies {
        implementation project(":core")
        implementation "com.badlogicgames.gdx:gdx-backend-lwjgl:1.9.9"
        implementation "com.badlogicgames.gdx:gdx-platform:1.9.9:natives-desktop"
        implementation "com.badlogicgames.gdx:gdx-box2d-platform:1.9.9:natives-desktop"

    }
}

我认为您使用了不必要的额外库,这些库并非必需。
我在Bitbucket上添加了一个可工作的示例项目,您可以克隆并与您自己的项目进行比较。
git clone https://zumbarlalsaindane@bitbucket.org/zumbarlalsaindane/libgdx-test.git

在运行应用程序之前,请执行以下步骤:

   Go to Run => Run Configurations.. => choose DesktopLauncher, Arguments Tab
   => Working Directory => Others then browse to yourproject-android/assets/ 
   and click Apply => Run

1
我已经在我的build.gradle桌面模块中拥有这3个依赖项,只是我使用的不是1.9.9版本,而是$gdxVersion变量。如果可以的话,请检查我更新后的问题并显示我的整个桌面模块的build.gradle文件。 - user904542
我尝试从我的 build.gradle 桌面模块中删除其他所有内容,只留下您提供的内容,但这会让我重新回到之前第一次尝试制作桌面发布包时遇到的旧错误,即:错误:发生了 JNI 错误,请检查您的安装并重试。主线程异常:"java.lang.NoClassDefFoundError: com/badlogic/gdx/ApplicationListener",不过我之前已经修复了这个问题。 - user904542
不同的平台最终会相互冲突。 - user904542
请注意,我在上面第二条评论中有一个错别字,我说“so I solution”,实际上我想说“so my solution”,我试图进行编辑,但为时已晚,已经过去了9分钟,系统似乎只能在发表评论后的5分钟内进行编辑。 - user904542
我上面解释的解决方案显然不是理想的,但除非我或其他人能找到更好的解决方案,否则只能将就着用。 - user904542
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接