问题
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.
回答1:
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>
You have to include the same dependency for Android and iOS, using a different classifier (natives-x86, natives-armebi, natives-armeabiv7, natives-ios)
来源:https://stackoverflow.com/questions/23162438/couldnt-load-shared-library-box2d-for-libgdx