2016-09-29 24 views
13

Tôi đã tạo trò chơi bằng libgdx và nó chạy tốt trên cả máy tính để bàn và Android trước đây. Tôi không chắc liệu nó có phải vì tôi bắt đầu sử dụng động cơ vật lý box2d và các hạt liquidfun, điều cơ bản xảy ra là khi tôi nhấp vào chơi trên trò chơi của tôi, nó bắt đầu tải sau khi tải nó nên vào gameScreen, nhưng sau đó nó đổ vỡ , myGame đã dừng lại ".Trò chơi Libgdx gặp sự cố trên Android

thông báo lỗi:

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

Tôi đi theo setup tutorial này về cách cổng liquidfun thư viện, nó từ năm 2014 kinda cũ. Trò chơi chạy Ok dưới dạng ứng dụng dành cho máy tính để bàn.

Đây là tệp build.gradle (phụ thuộc) của tôi, vấn đề có thể là gì? và tại sao làm việc như ứng dụng máy tính để bàn chứ không phải là ứng dụng 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:

tôi tìm thấy giải pháp này link vì vậy những gì tôi đã làm là tôi sao chép GDX-liquidfun.jar Android - nhấp chuột> libs thì phải và thêm như thư viện, nhưng tôi vẫn nhận được lỗi. Trợ giúp xin vui lòng, cảm ơn trước (Tôi đang sử dụng Intellij Community Edition)

+0

Có thể là một vấn đề với bạn gradle, xin vui lòng thêm chúng vào câu hỏi của bạn. – Marius

+0

Có gì sai với câu trả lời dưới đây? Bạn nói các lớp giải quyết, nhưng một số phương pháp không hoạt động, vì vậy dường như bạn cần đọc tài liệu API để tìm các thông số chính xác –

+0

@ cricket_007 - Tôi đang sử dụng LiquidFun cho các hạt, LiquidFun dựa trên Box2d Vì vậy, khi bạn sử dụng LiquidFun , world.step sẽ cần 4 tham số. Nhưng nếu tôi sử dụng Box2d đơn giản thì chỉ cần 3 tham số, câu trả lời dưới đây về cơ bản sẽ làm cho tôi chỉ sử dụng box2d, nhưng tôi cần LiquidFun cho các hạt. –

Trả lời

0

Đặt điều này trong sự phụ thuộc android:

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" 

và điều này phụ thuộc vào cốt lõi:

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

Tôi đã thử nó nhưng bây giờ tôi nhận được một lỗi trên //world.step(1/60f, 6, 2, 1); Trong box2d thường xuyên bạn không cần 1 nhưng vì tôi cũng đang sử dụng liquidfun thì tôi cần tham số thứ 4 đó. Và nếu tôi chỉ làm world.step (1/60f, 6, 2) lỗi sẽ bị xóa nhưng khi tải trò chơi bị treo, hãy nói với tôi rằng yêu cầu là (float, int, int, int) –

+0

Nếu bạn muốn sử dụng liquidfun sau đó không bao gồm box2d trong dự án của bạn. liquidfun phụ thuộc vào một lọ khác với lọ box2d. phương pháp bước của box2d thế giới mất ba đối số nhưng liquidfun phụ thuộc jar có thế giới mà có 4 đối số. – Aryan

Các vấn đề liên quan