无法为 libgdx 加载共享库 box2d

2022-01-12 00:00:00 box2d java libgdx maven

我有一个使用 maven 构建的 libGDX 项目.它过去运行良好,但最近它停止工作,因为 libGDX 将 box2d 移动为扩展.我将扩展作为依赖项添加到我的项目的核心,就像我添加任何其他依赖项一样:

I have a libGDX project that is built using maven. It's run fine in the past, but recently, it's stopped working, due to libGDX moving box2d to being an extension. I added the extension as a dependency to the core of my project like I would any other dependency:

<dependency>
    <groupId>com.badlogicgames.gdx</groupId>
    <artifactId>gdx-box2d</artifactId>
    <version>${gdx.version}</version>
    <scope>compile</scope>
</dependency>

但是,当我尝试运行桌面项目(或其他任何东西,真的)时,我收到以下错误:

however, when I try to run the project for desktop (or anything else, really), I get the following error:

[java] Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx-box2d64.dll' for target: Windows 7, 64-bit
[java]  at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:115)
[java]  at com.badlogic.gdx.physics.box2d.World.<clinit>(World.java:185)
[java]  ... 11 more
[java] Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to read file for extraction: gdx-box2d64.dll
[java]  at com.badlogic.gdx.utils.SharedLibraryLoader.readFile(SharedLibraryLoader.java:124)
[java]  at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:245)
[java]  at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:113)
[java]  ... 12 more

有谁知道这个错误是什么意思以及我可以如何解决它?我不确定我应该提供哪些其他信息,但如果有要求,我会添加任何所需的代码或信息.

Does anyone know what this error means and how I might fix it? I'm not sure what other information I should provide, though I'll add any code or information needed if asked.

推荐答案

您还必须为桌面添加包含本机库的工件

You'll also have to add the artifacts containing the native libraries, for the desktop

<dependency>
    <groupId>com.badlogicgames.gdx</groupId>
    <artifactId>gdx-box2d-platform</artifactId>
    <classifier>natives-desktop</classifier>
    <version>${gdx.version}</version>
    <scope>compile</scope>
</dependency>

您必须为 Android 和 iOS 包含相同的依赖项,使用不同的分类器(natives-x86、natives-armebi、natives-armeabiv7、natives-ios)

You have to include the same dependency for Android and iOS, using a different classifier (natives-x86, natives-armebi, natives-armeabiv7, natives-ios)

相关文章