应用不会 运行 在 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 并且它工作了。
我一直在尝试创建一个 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 并且它工作了。