2016-09-29 4 views
13

나는 libgdx를 사용하여 게임을 만들었으며 이전에는 데스크톱과 Android 모두에서 정상적으로 실행됩니다. box2d physics engine과 liquidfun 입자를 사용하기 시작했기 때문에 기본적으로 어떤 일이 발생하는지는 내 게임에서 재생을 클릭하면로드를 시작한 후로드 한 후 gameScreen으로 이동해야하는지 확실하지 않지만 충돌이 발생하면 "불행히도 , myGame이 중지되었습니다. "Android에서 Libgdx 게임이 작동하지 않습니다.

오류 메시지가 :

E/AndroidRuntime: FATAL EXCEPTION: GLThread 3764 
Process: com.nivekbryan.puffypuff, PID: 8416 
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/badlogic/gdx/physics/box2d/World; 

내가 어떻게 포트 liquidfun 라이브러리는 2,014에서 좀 옛날이 setup tutorial을 따랐다. 게임이 데스크톱 응용 프로그램으로 실행됩니다.

이것은 내 build.gradle 파일 (종속성)입니다. 무엇이 문제 일 수 있습니까? 왜 안드로이드 응용 프로그램이 아닌 데스크톱 응용 프로그램으로 작업하고 있습니까?

buildscript { 
    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     jcenter() 
    } 
    dependencies { 
     classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6' 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.1.0' 
    } 
} 

allprojects { 
    apply plugin: "eclipse" 
    apply plugin: "idea" 

    version = '1.0' 
    ext { 
     appName = "Puffy Puff" 
     gdxVersion = '1.9.3' 
     roboVMVersion = '2.1.0' 
     box2DLightsVersion = '1.4' 
     ashleyVersion = '1.7.0' 
     aiVersion = '1.8.0' 
     admobVersion = '8.3.0' 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     maven { url "https://oss.sonatype.org/content/repositories/releases/" } 
    } 
} 

project(":desktop") { 
    apply plugin: "java" 


    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 

     compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

project(":android") { 
    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" 

     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64" 
     compile "com.google.android.gms:play-services-ads:8.3.0" 
     compile fileTree(dir: 'libs', include: '*.so') 
    } 
} 

project(":ios") { 
    apply plugin: "java" 
    apply plugin: "robovm" 


    dependencies { 
     compile project(":core") 
     compile "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" 
     compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" 
     compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" 

     compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios" 
    } 
} 

project(":html") { 
    apply plugin: "gwt" 
    apply plugin: "war" 


    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources" 
     compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" 
    } 
} 

project(":core") { 
    apply plugin: "java" 


    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 

     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

tasks.eclipse.doLast { 
    delete ".project" 
} 

업데이트 :이 솔루션을 발견

link 나는 안드로이드에 GDX-liquidfun.jar을 복사 한 그래서 -> libs와 다음 마우스 오른쪽 버튼으로 클릭하고 라이브러리로 추가,하지만 난 여전히를 얻을 수 오류. 도움말, 덕분에 사전에 (내가 사용 인 IntelliJ 커뮤니티 에디션)하시기 바랍니다

+0

은 문제가 될 수 있음 당신이 질문에 질문을 추가하십시오. – Marius

+0

아래 답변에 어떤 문제가 있습니까? 클래스가 해결되었지만 일부 메소드가 작동하지 않으므로 올바른 매개 변수를 찾으려면 API 문서를 읽어야합니다. –

+0

@ cricket_007 - 입자 용 LiquidFun을 사용하고 있습니다. LiquidFun은 Box2d를 기반으로합니다. LiquidFun을 사용할 때 , world.step에는 4 개의 매개 변수가 필요합니다. 그러나 일반 Box2d를 사용하는 경우 3 개의 매개 변수 만 필요합니다. 아래의 대답은 기본적으로 box2d 만 사용하게하지만 입자에 대해서는 LiquidFun이 필요합니다. –

답변

0

는 안드로이드 의존성이 넣어 :

natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" 
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" 
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" 

핵심 종속성이는 :

compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" 
+0

시도했지만 지금은 //world.step(1/60f, 6, 2, 1)에 오류가 발생합니다. 일반 box2d에서는 1이 필요 없지만 liquidfun을 사용하고 있으므로 4 번째 매개 변수가 필요합니다. 그리고 만약 내가 world.step (1/60f, 6, 2) 에러가 제거되었지만 일단 게임이로드 될 때 요구가 (float, int, int, int)라고 말하면 –

+0

liquidfun 프로젝트에 box2d를 포함하지 마십시오. liquidfun은 box2d jar와는 다른 jar에 의존합니다. box2d 세계의 2 단계 방법은 3 인자를 취하고, 4 인자를 취하는 세계를 가진 liquidfun 의존 항아리를 취한다. – Aryan

관련 문제