2016-09-29 6 views
13

Ich machte ein Spiel mit libgdx und es läuft gut auf beiden Desktop-und Android vor. Ich bin mir nicht sicher, ob es, weil ich begann, box2d Physik-Engine und liquidfun Teilchen zu verwenden, was grundsätzlich passiert ist, dass, wenn ich auf mein Spiel klicke es beginnt zu laden, dann nach dem Laden sollte es auf dem Spielbildschirm gehen, aber es stürzt dann sagt "Leider , myGame hat aufgehört ".Libgdx Spiel stürzt auf Android

Fehlermeldung:

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

Ich folgte diesem setup tutorial, wie man Port liquidfun Bibliothek, seine ab 2014 ein bisschen alt. Das Spiel läuft Ok als Desktop-Anwendung.

Dies ist meine build.gradle Datei (Abhängigkeiten), was könnte das Problem sein? und warum arbeitet als Desktop-Anwendung und nicht als Android-Anwendung?

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:

ich diese Lösung gefunden link so, was ich tat, das ich GDX-liquidfun.jar auf Android kopiert -> libs dann einen Rechtsklick und fügen Sie als Bibliothek, aber ich habe immer noch die Error. Hilfe bitte, Dank im Voraus (Ich verwende Intellij Community Edition)

+0

könnte ein Problem sein, mit Sie grandle, bitte fügen Sie sie zu Ihrer Frage hinzu. – Marius

+0

Was stimmt mit der folgenden Antwort nicht? Sie sagten, die Klassen lösen, aber eine Methode funktioniert nicht, so scheint, müssen Sie die API-Dokumentation lesen, um die richtigen Parameter zu finden –

+0

@ cricket_007 - Ich benutze LiquidFun für Partikel, LiquidFun basiert auf Box2D Also wenn Sie LiquidFun verwenden , world.step benötigt 4 Parameter. Aber wenn ich plain Box2d verwende, dann werden nur 3 Parameter benötigt, die folgende Antwort wird mich dazu bringen, nur box2d zu verwenden, aber ich brauche LiquidFun für Partikel. –

Antwort

0

Setzen Sie diese in den Android-Abhängigkeiten:

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" 

und dies in Kern Abhängigkeiten:

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

Ich habe es versucht, aber jetzt bekomme ich einen Fehler auf //world.step(1/60f, 6, 2, 1); In regulärer box2d brauchst du die 1 nicht, aber da ich auch liquidfun benutze, brauche ich den 4. Parameter. Und wenn ich nur world.step (1/60f, 6, 2) mache, wird der Fehler entfernt, aber sobald das Spiel geladen ist, stürzt das Spiel ab und sagt mir, dass das erforderlich ist (float, int, int, int) –

+0

Wenn du liquidfun benutzen willst Schließen Sie box2d dann nicht in Ihr Projekt ein. liquidfun hängt von einem Glas ab, das sich von box2d unterscheidet. Step-Methode von box2d Welt nehmen drei Argument, aber liquidfun abhängiges Glas mit Welt, die 4 Argument zu nehmen. – Aryan