2015-12-05 2 views
1

Моя ошибка:UnsatisfiedLinkError при вызове нового 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; 
+0

hi, не могли бы вы отредактировать свой пост и поместить весь импорт, который находится в начале вашего класса – Netero

+0

@ minos23 Я добавил импорт сейчас – programmers5

+0

Я попросил импорт, чтобы посмотреть, используете ли вы другой подобный класс мира, но вы не , я предлагаю вам некоторое решение, чтобы попытаться надеяться, что это будет полезно – Netero

ответ

1

я использовал Box2D несколько раз с libgdx и я никогда не сталкивался с такой проблемой:

здесь то, что я предлагаю т вам:

GdxNativesLoader .load(); должен быть поставлен на создать() метод, но это не похоже на работу с вами

также попытаться назвать это статически, как это:

static { 
    GdxNativesLoader.load(); 
} 

но я тонкий вашу проблему это расширение библиотеки, которую вы используете , убедитесь, что вы используете gdx-box2d, а не gdx-box2d-gwt, который используется только для проекта Html.

Убедитесь, что вы используете правый (файл jar)/(библиотека расширений): gdx-box2d.jar и GDX-Box2D-natives.jar (также проверить путь сборки)

также попробовать:

обновить Box2D версию, что вы используете

это были все стрелки я была! надеюсь, что один из них будет работать

Удачи!

+0

Спасибо! Я использовал библиотеки gwt, поэтому он не работал – programmers5

0

Я столкнулся с той же проблемой, используя библиотеки gwt. Обновленный артефакт зависимостей Maven от

gdx-box2d-gwt 

в

gdx-box2d 

и исправлена ​​ошибка.

Смежные вопросы