Libgdx AndroidLauncher FATAL EXCEPTION ClassNotFoundException

时间:2016-03-07 03:25:06

标签: java android eclipse libgdx

我试图用LibGDX将AdMob实现到我的android项目中,我不知何故完全搞砸了我的整个项目。我认为这与图书馆有关。我重置了所有代码,但它仍然无效。我正在使用Eclipse,所以我没有gradle。

这是我的LogCat:

03-06 19:16:13.481: E/AndroidRuntime(26583): FATAL EXCEPTION: main
03-06 19:16:13.481: E/AndroidRuntime(26583): Process: com.techybite.sportsball, PID: 26583
03-06 19:16:13.481: E/AndroidRuntime(26583): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.techybite.sportsball/com.techybite.sportsball.AndroidLauncher}: java.lang.ClassNotFoundException: Didn't find class "com.techybite.sportsball.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.techybite.sportsball-1/base.apk"],nativeLibraryDirectories=[/data/app/com.techybite.sportsball-1/lib/arm, /vendor/lib, /system/lib]]
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3023)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3294)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread.access$1000(ActivityThread.java:210)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1704)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.os.Looper.loop(Looper.java:145)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread.main(ActivityThread.java:6938)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at java.lang.reflect.Method.invoke(Native Method)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at java.lang.reflect.Method.invoke(Method.java:372)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
03-06 19:16:13.481: E/AndroidRuntime(26583): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.techybite.sportsball.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.techybite.sportsball-1/base.apk"],nativeLibraryDirectories=[/data/app/com.techybite.sportsball-1/lib/arm, /vendor/lib, /system/lib]]
03-06 19:16:13.481: E/AndroidRuntime(26583):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.Instrumentation.newActivity(Instrumentation.java:1094)
03-06 19:16:13.481: E/AndroidRuntime(26583):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3013)
03-06 19:16:13.481: E/AndroidRuntime(26583):    ... 10 more
03-06 19:16:13.481: E/AndroidRuntime(26583):    Suppressed: java.lang.NoClassDefFoundError: com.techybite.sportsball.AndroidLauncher
03-06 19:16:13.481: E/AndroidRuntime(26583):        at dalvik.system.DexFile.defineClassNative(Native Method)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at dalvik.system.DexFile.defineClass(DexFile.java:226)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at dalvik.system.DexPathList.findClass(DexPathList.java:321)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
03-06 19:16:13.481: E/AndroidRuntime(26583):        ... 14 more
03-06 19:16:13.481: E/AndroidRuntime(26583):    Suppressed: java.lang.ClassNotFoundException: com.techybite.sportsball.AndroidLauncher
03-06 19:16:13.481: E/AndroidRuntime(26583):        at java.lang.Class.classForName(Native Method)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
03-06 19:16:13.481: E/AndroidRuntime(26583):        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
03-06 19:16:13.481: E/AndroidRuntime(26583):        ... 13 more
03-06 19:16:13.481: E/AndroidRuntime(26583):    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

非常感谢任何帮助。这是我的第一个libGDX项目,我正在学习。提前谢谢!

2 个答案:

答案 0 :(得分:1)

问题的原因确实是库问题。在将项目编译为可运行的时候,我多次遇到过这种问题。

在我的情况下,问题是它没有包装库,或者它打包错误,因此无法访问。 尝试使用7zip之类的东西打开导出的apk,看看在导出时如何构建文件结构。

我建议使用摇篮重新设置此项目或至少未来的项目。

https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle

答案 1 :(得分:1)

即使这有点老了,这个让我头疼了好几个星期,以为我会为遇到这个问题的人留下一个解决方案:

  1. 选择您的Android项目。项目>属性。
  2. 在左侧面板中选择“Java Build Path”
  3. 选择“订购和导出”标签
  4. 点击“全选”,然后点击“应用”> “OK”
  5. 如果您的 DesktopLauncher 类“无法找到”并抛出ClassNotFoundException,请使用相同的上述步骤而不是在第一步中选择您的Android项目,选择您的桌面项目之前的步骤(听起来很明显,但它有我)。这是一个图书馆问题。

    PS:我正在使用带有gradle集成的eclipse。