2015-01-19 5 views
0

현재 일부 물리학을 앱에 구현하려고하지만 컴파일 할 때 문제가 있습니다.Android Studio Jbox2D java.lang.NoClassDefFoundError : org.slf4j.LoggerFactory

컴파일 오류 :

01-18 18:38:49.165 32473-32473/com.example.anthonys.pennyhockey E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.anthonys.pennyhockey, PID: 32473 
java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory 
     at org.jbox2d.pooling.normal.MutableStack.<clinit>(MutableStack.java:35) 
     at org.jbox2d.pooling.normal.DefaultWorldPool.<init>(DefaultWorldPool.java:66) 
     at org.jbox2d.dynamics.World.<init>(World.java:122) 
     at com.example.anthonys.pennyhockey.Play.<init>(Play.java:52) 
     at java.lang.Class.newInstanceImpl(Native Method) 
     at java.lang.Class.newInstance(Class.java:1208) 
     at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2122) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5146) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
     at dalvik.system.NativeStart.main(Native Method) 

내 코드 :

package com.example.anthonys.pennyhockey; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

import org.jbox2d.collision.shapes.PolygonShape; 
import org.jbox2d.common.Vec2; 
import org.jbox2d.dynamics.Body; 
import org.jbox2d.dynamics.BodyDef; 
import org.jbox2d.dynamics.BodyType; 
import org.jbox2d.dynamics.FixtureDef; 
import org.jbox2d.dynamics.World; 


public class Play extends Activity { 


private void definition() 
{ 
    BodyDef penny = new BodyDef(); 
    penny.type = BodyType.DYNAMIC; 
    penny.position.set(0,20); 
    penny.angle = 0; 
    Body myObject = world.createBody(penny); 
    PolygonShape pennyShape = new PolygonShape(); 
    pennyShape.setAsBox(0.75f,0.75f); 

    FixtureDef pennyFixture = new FixtureDef(); 
    pennyFixture.shape = pennyShape; 
    pennyFixture.density = 1; 
    myObject.createFixture(pennyFixture); 

} 









@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_play); 
} 


World world = new World(new Vec2(0, -9.8f), false); 



@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.play, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

은 기본적으로 내가 주위를 이동할 수있는 2D 그림을 만들려고 노력하고 있습니다. 저는 Jbox2d에 대해 매우 익숙합니다. 따라서 누구나 쉽게 사용할 수있는 물리 엔진이 있다면, 제안에 대해서도 열려 있습니다!

'libs'라는 폴더에 jbox2d-library-2.1.2.2.jar 파일이 있습니다. 나는 jbox2d 모르는

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
compile files('libs/jbox2d-library-2.1.2.2.jar') 
} 

답변

0

build.gradle하여 응용 프로그램에 다음을 추가,하지만 일어난 로깅 구현을 찾을 수있는 sl4j (로깅 외관 인)입니다했다.

아마 당신이해야 할 일은 클래스 패스에 하나만 입력하면됩니다. log4j에

documentation ( "하지 받는다는 건물") :

편집이 언급 jbox2d BTW

, (하지만 정확한 버전에 대해 확실하지)

compile 'org.slf4j:slf4j-log4j12:1.6.4' 

: 어떤 왜 당신은 메이븐 레포에서 의존성을 얻지 못했습니까? here에서 gradle을 얻는 것이 훨씬 쉬워 보이며, gradle이 종속성을 처리하도록합니다.

'org.jbox2d:jbox2d:2.1.2.2'