(eclipse中的libGDX android)无法实例化ComponentInfo活动

时间:2016-01-11 19:44:19

标签: android libgdx

我刚开始Android游戏开发,我遇到了一个愚蠢的问题。我想在手机或虚拟机上运行应用程序,我收到此错误:

01-11 21:16:45.362: E/AndroidRuntime(19063): FATAL EXCEPTION: main
01-11 21:16:45.362: E/AndroidRuntime(19063): Process: com.mygdx.game, PID: 19063
01-11 21:16:45.362: E/AndroidRuntime(19063): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mygdx.game/com.mygdx.game.AndroidLauncher}: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1/base.apk"],nativeLibraryDirectories=[/data/app/com.mygdx.game-1/lib/arm, /vendor/lib, /system/lib]]
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2515)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread.access$900(ActivityThread.java:172)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.os.Handler.dispatchMessage(Handler.java:102)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.os.Looper.loop(Looper.java:145)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread.main(ActivityThread.java:5832)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at java.lang.reflect.Method.invoke(Native Method)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at java.lang.reflect.Method.invoke(Method.java:372)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
01-11 21:16:45.362: E/AndroidRuntime(19063): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1/base.apk"],nativeLibraryDirectories=[/data/app/com.mygdx.game-1/lib/arm, /vendor/lib, /system/lib]]
01-11 21:16:45.362: E/AndroidRuntime(19063):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
01-11 21:16:45.362: E/AndroidRuntime(19063):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505)
01-11 21:16:45.362: E/AndroidRuntime(19063):    ... 10 more
01-11 21:16:45.362: E/AndroidRuntime(19063):    Suppressed: java.lang.NoClassDefFoundError: com.mygdx.game.AndroidLauncher
01-11 21:16:45.362: E/AndroidRuntime(19063):        at dalvik.system.DexFile.defineClassNative(Native Method)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at dalvik.system.DexFile.defineClass(DexFile.java:226)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at dalvik.system.DexPathList.findClass(DexPathList.java:321)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
01-11 21:16:45.362: E/AndroidRuntime(19063):        ... 14 more
01-11 21:16:45.362: E/AndroidRuntime(19063):    Suppressed: java.lang.ClassNotFoundException: com.mygdx.game.AndroidLauncher
01-11 21:16:45.362: E/AndroidRuntime(19063):        at java.lang.Class.classForName(Native Method)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
01-11 21:16:45.362: E/AndroidRuntime(19063):        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
01-11 21:16:45.362: E/AndroidRuntime(19063):        ... 13 more
01-11 21:16:45.362: E/AndroidRuntime(19063):    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

如果您有经验,请帮助我。祝你有愉快的一天。

2 个答案:

答案 0 :(得分:6)

右键单击android项目,然后单击属性 - > Java构建路径 - >订购和导出,勾选所有方框。

清理项目并重建。

在eclipse中从不同的android API切换时出现错误。

通常这种情况发生在一个新的libGDX项目中,如果你没有默认的Android SDK(我的版本是19,我没有),这是由Project修改的 - >属性 - > Android,然后选择构建目标。

进行这些更改后始终清理项目。

以上两个问题是我在libGDX和Eclipse中经常遇到的问题,无论是在导入项目时,只是设置一个新项目,还是我重新安装Android SDK时。

希望这会有所帮助。 ; - )

答案 1 :(得分:1)

我在使用 Android Studio 运行 LibGDX 应用程序时遇到了这个问题。问题是我编辑了 AndroidLauncher.java 文件而不是我的实际主活动文件(与您的游戏同名)。要解决此问题,请确保您的 AndroidLauncher.java 文件中有此内容:

package com.mygdx.game;

import android.os.Bundle;

import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.mygdx.game.myGame;

public class AndroidLauncher extends AndroidApplication {
     @Override
     protected void onCreate (Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
         initialize(new myGame(), config);
    }
}

(您应该将“myGame”更改为您自己的应用名称)。