簡體   English   中英

調用new World()時出現UnsatisfiedLinkError

[英]UnsatisfiedLinkError when calling new World()

我的錯誤:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.UnsatisfiedLinkError: org.jbox2d.common.Timer.now()D
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:130)
Caused by: java.lang.UnsatisfiedLinkError: org.jbox2d.common.Timer.now()D
    at org.jbox2d.common.Timer.now(Native Method)
    at org.jbox2d.common.Timer.reset(Timer.java:35)
    at org.jbox2d.common.Timer.<init>(Timer.java:31)
    at org.jbox2d.dynamics.World.<init>(World.java:587)
    at org.jbox2d.dynamics.World.<init>(World.java:158)
    at org.jbox2d.dynamics.World.<init>(World.java:154)
    at org.jbox2d.dynamics.World.<init>(World.java:145)
    at com.badlogic.gdx.physics.box2d.World.<init>(World.java:61)
    at com.example.blockbunny.states.Play.<init>(Play.java:22)
    at com.example.blockbunny.handlers.GameStateManager.getState(GameStateManager.java:36)
    at com.example.blockbunny.handlers.GameStateManager.pushState(GameStateManager.java:46)
    at com.example.blockbunny.handlers.GameStateManager.<init>(GameStateManager.java:20)
    at com.example.blockbunny.main.Game.create(Game.java:33)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:146)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:123)

當我這樣做時會發生這種情況:

world = new World(new Vector2(0, -9.81f), true);

我在網上看過,其中包括一些使用此解決方案的方法:

import com.badlogic.gdx.utils.GdxNativesLoader;
GdxNativesLoader.load();

但是,我不知道該功能在哪里,甚至不起作用(我嘗試將其放在幾個不同的地方)

如何解決此問題?

幫助將不勝感激,謝謝!

根據要求,這是我的進口商品:

import static com.example.blockbunny.handlers.B2DVars.PPM;

import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.BodyDef;
import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer;
import com.badlogic.gdx.physics.box2d.FixtureDef;
import com.badlogic.gdx.physics.box2d.PolygonShape;
import com.badlogic.gdx.physics.box2d.World;
import com.example.blockbunny.handlers.GameStateManager;
import com.example.blockbunny.main.Game;

我將Box2d與libgdx一起使用了幾次,但從未遇到過這樣的問題:

在這里我向你建議:

GdxNativesLoader.load(); 應該放在create()方法上,但這似乎對您不起作用

也可以嘗試像這樣以靜態方式調用它:

static {
    GdxNativesLoader.load();
}

但是我想知道您的問題是正在使用的庫的擴展,請確認您使用的是gdx-box2d,而不是僅用於HTML項目的gdx-box2d-gwt

驗證您使用的是正確的(jar文件)/(擴展庫): gdx-box2d.jargdx-box2d-natives.jar (還要驗證構建路徑)

也嘗試:

升級您使用的box2d版本

那是我所有的箭! 希望其中一項能奏效

祝好運 !!

我遇到了相同的問題,當時正在使用gwt庫。 從更新了Maven依賴工件

gdx-box2d-gwt 

gdx-box2d 

它修復了錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM