我试图更新到最新的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