2016-09-29 6 views
13

Я сделал игру, используя libgdx, и она отлично работает как на настольном компьютере, так и на Android. Я не уверен, что из-за того, что я начал использовать физический движок box2d и жидкие частицы, в основном это происходит, когда я нажимаю на игру в своей игре, он начинает загружаться, после загрузки он должен перейти на экран игры, но он падает, а затем говорит: «К сожалению , myGame остановился ».Нарушения игры Libgdx на Android

сообщение об ошибке:

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

Я следовал этой setup tutorial о том, как порт liquidfun библиотеки, его с 2014 года своего рода старый. Игра работает нормально как настольное приложение.

Это мой файл build.gradle (зависимости), что может быть проблемой? и почему работает как настольное приложение, а не как приложение для Android?

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" 
} 

UPDATE:

Я нашел это решение link так что я сделал это я скопировал GDX-liquidfun.jar для Android -> ЛИЭС затем правой кнопкой мыши и добавить в библиотеку, но я все еще получаю ошибка. Помогите пожалуйста, заранее спасибо (я использую Intellij Community Edition)

+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, но поскольку я также использую жидкость, мне нужен этот 4-й параметр. И если я просто делаю world.step (1/60f, 6, 2), ошибка удаляется, но после загрузки игры происходит сбой, сообщая мне, что требуемый (float, int, int, int) –

+0

Если вы хотите использовать жидкость то не включайте box2d в свой проект. liquidfun зависят от банки, которая отличается от банки box2d. шаг метод box2d мире принять три аргумента, но liquidfun зависимых банок, имеющих мир, которые принимают 4 аргумента. – Aryan