2016-03-07 34 views
0

我正試圖用我的Android項目實現AdMob與LibGDX,我完全搞砸了我的整個項目。我認爲這與圖書館有關。我重置了所有的代碼,但它仍然不起作用。我使用Eclipse,所以我沒有gradle。Libgdx AndroidLauncher FATAL EXCEPTION ClassNotFoundException

這裏是我的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項目,我正在學習。先謝謝你!

回答

0

問題的原因確實是一個圖書館問題。編譯我的項目到可運行時,我遇到過這種問題很多次。

在我的情況下,問題是要麼沒有打包庫,要麼打包錯誤,導致無法訪問。 嘗試用7zip之類的東西打開導出的apk,看看導出時文件結構是如何建立起來的。

我建議使用搖籃來重新設置這個項目或至少將來的項目。

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

0

即使這是一個有點老了,這一次讓我抓我的頭幾個星期,以爲我會離開這裏的解決方案的人誰碰到這個問題來了:

  1. 選擇你的Android項目。項目>屬性。
  2. 選擇「Java構建路徑」左側面板
  3. 上選擇「排序和導出」選項卡
  4. 點擊「全選」再點擊「應用」>「確定」

如果它是你的DesktopLauncher'找不到'的類並拋出ClassNotFoundException,使用上述相同的步驟,但不是在第一步中選擇您的Android項目,在按照步驟操作之前選擇您的桌面項目(聽起來很明顯,但它有我)。這是一個圖書館問題。 PS:我使用eclipse和gradle集成。

相關問題