应用不会 运行 在 ADB 上

App won't run on ADB

我一直在尝试创建一个 Flappy Bird 应用程序,它可以工作......至少,它可以在桌面上工作。我在 运行 在 Android 上遇到了很多麻烦。每当我尝试 运行ning 时,它不会在控制台中给出任何错误消息,但它会在 Logcat 中给出。此外,当我尝试 运行 它时,它总是强制关闭(在我的 phone 上)并说 "Unfortunately, Flappy Bird has stopped." 我不知道为什么,因为我也是 Android 编程,我无法正确读取 Logcat 来调试错误。我已经发布了一些图片以配合我所看到的内容。

注意:我的设备是 运行s Android 4.3 的根 HTC,我已经完成了 USB 调试步骤。

我已经从 SDK 管理器安装了一些工具。我还安装了 API 的 14、18 和 22(14 之前的任何东西都不兼容)

这是在调试模式下 运行 后的样子。

如果您需要更多信息,我很乐意为您提供。

这是 Logcat

的文本版本
04-06 17:02:45.911: E/AndroidRuntime(10812): FATAL EXCEPTION: main
04-06 17:02:45.911: E/AndroidRuntime(10812): 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.apk"],nativeLibraryDirectories=[/data/app-lib/com.mygdx.game-1, /system/lib]]
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.ActivityThread.access0(ActivityThread.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.os.Handler.dispatchMessage(Handler.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.os.Looper.loop(Looper.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.ActivityThread.main(ActivityThread.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at java.lang.reflect.Method.invokeNative(Native Method)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at java.lang.reflect.Method.invoke(Method.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at dalvik.system.NativeStart.main(Native Method)
04-06 17:02:45.911: E/AndroidRuntime(10812): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.mygdx.game-1, /system/lib]]
04-06 17:02:45.911: E/AndroidRuntime(10812):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at java.lang.ClassLoader.loadClass(ClassLoader.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at java.lang.ClassLoader.loadClass(ClassLoader.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    at android.app.Instrumentation.newActivity(Instrumentation.java)
04-06 17:02:45.911: E/AndroidRuntime(10812):    ... 12 more

从我在 Logcat 中看到的情况来看,AndroidLauncher 似乎有问题。这是由 Libgdx 自动创建的,所以我不太确定问题出在哪里。但它可能在行 initialize(new FlappyDemo(), config);

这里是完整的Android启动器class供参考:

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.FlappyDemo;

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

最后我自己找到了答案。那是我没有安装所有正确的 API。我所要做的就是安装 API 23(这也恰好是 targetSdkVersion)。在那之后,我重新启动了 Eclipse 并且它工作了。