我試圖更新到最新的LibGDX版本1.9.2(我一直在使用舊版本很長一段時間),但創建一個新的LibGDX項目並運行默認的badlogic徽標應用程序它在Android上崩潰。我創建了新的LibGDX項目很多次,沒有任何問題,所以現在一定會有所不同,因爲這次不工作。我的項目中沒有錯誤,桌面項目工作正常,只是在嘗試運行Android項目時崩潰。Android更新後更新LibGDX
我創建使用安裝應用程序的新LibGDX項目,然後通過Eclipse安裝過程中,我通常要經過哪去了之前一貫致力於:
- 設置桌面運行配置到資產的文件夾指向Android的資產文件夾
- 配置的Android構建路徑,我同時使用的是Android 4.4(API 20)和Android 6.0(API 23)
- 設定Android運行配置爲使用我的Android項目並啓動對有源器件試圖
我也嘗試過使用SDK管理器來更新我安裝的Android SDK,重新下載LibGDX安裝程序,以防萬一它損壞了,並且多次刪除/重新創建項目,但它仍然不起作用。
我也試着用google搜索錯誤信息,但是我發現的大部分似乎與LibGDX無關。我發現的一些修復是在我的項目中已經正確設置的設置問題。所以我在這裏感到很茫然,不知道問題在哪裏。
以下是錯誤消息:
04-26 00:59:31.724: E/AndroidRuntime(1641): FATAL EXCEPTION: main
04-26 00:59:31.724: E/AndroidRuntime(1641): Process: com.tekker.metronome, PID: 1641
04-26 00:59:31.724: E/AndroidRuntime(1641): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.tekker.metronome/com.tekker.metronome.AndroidLauncher}: java.lang.ClassNotFoundException: Didn't find class "com.tekker.metronome.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.tekker.metronome-1/base.apk"],nativeLibraryDirectories=[/data/app/com.tekker.metronome-1/lib/arm64, /vendor/lib64, /system/lib64]]
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2988)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3242)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread.access$1000(ActivityThread.java:205)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1695)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.os.Handler.dispatchMessage(Handler.java:102)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.os.Looper.loop(Looper.java:145)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread.main(ActivityThread.java:6895)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.reflect.Method.invoke(Native Method)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.reflect.Method.invoke(Method.java:372)
04-26 00:59:31.724: E/AndroidRuntime(1641): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
04-26 00:59:31.724: E/AndroidRuntime(1641): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
04-26 00:59:31.724: E/AndroidRuntime(1641): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.tekker.metronome.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.tekker.metronome-1/base.apk"],nativeLibraryDirectories=[/data/app/com.tekker.metronome-1/lib/arm64, /vendor/lib64, /system/lib64]]
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.Instrumentation.newActivity(Instrumentation.java:1080)
04-26 00:59:31.724: E/AndroidRuntime(1641): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2978)
04-26 00:59:31.724: E/AndroidRuntime(1641): ... 10 more
04-26 00:59:31.724: E/AndroidRuntime(1641): Suppressed: java.lang.NoClassDefFoundError: com.tekker.metronome.AndroidLauncher
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.DexFile.defineClassNative(Native Method)
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.DexFile.defineClass(DexFile.java:226)
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.DexPathList.findClass(DexPathList.java:321)
04-26 00:59:31.724: E/AndroidRuntime(1641): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
04-26 00:59:31.724: E/AndroidRuntime(1641): ... 14 more
04-26 00:59:31.724: E/AndroidRuntime(1641): Suppressed: java.lang.ClassNotFoundException: com.tekker.metronome.AndroidLauncher
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.Class.classForName(Native Method)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
04-26 00:59:31.724: E/AndroidRuntime(1641): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
04-26 00:59:31.724: E/AndroidRuntime(1641): ... 13 more
04-26 00:59:31.724: E/AndroidRuntime(1641): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
嘗試eclipse kepler。我知道Eclipse Luna在libgdx項目中有build.gradle問題。 – Barodapride
由於ADT插件不再更新,堅持使用Eclipse有什麼好處嗎?我一直在推遲到Android Studio工作,因爲我比開發一個新的IDE更專注於開發。但是我能夠快速獲得LibGDX的設置和工作,所以它沒有我想象的那麼不同。迄今爲止我遇到的一個嚴重問題是構建非常緩慢。在我的手機上建立和加載應用程序需要2到5分鐘的時間。這當然不會起作用!但在構建過程中,根據狀態欄,它似乎是Gradle相關的。 – Tekkerue
我使用Eclipse是因爲它在我測試遊戲的桌面上構建並更快地運行項目。我從來沒有真正關注過移動版本的差異。在Eclipse上構建和運行需要2-3秒,而在IntelliJ中(我假設Android Studio)在我的經驗中需要15-20秒。聽起來不是什麼大不了的事情,但是當你每天做100次以上的時候,這聽起來並不算什麼。特別是在玩弄價值的遊戲中發生了很多事情。另外對於某些事情,您可以使用調試模式並在程序運行時更改內容。 – Barodapride