java - 应用程序无法在 ADB 上运行

标签 java android logging sdk adb

我一直在尝试创建一个 Flappy Bird 应用程序,并且它有效……至少在桌面上有效。我在 Android 上运行它时遇到很多麻烦。每当我尝试运行它时,它不会在控制台中给出任何错误消息,但会在 Logcat 中给出任何错误消息。另外,当我尝试运行它时,它总是强制关闭(在我的手机上)并显示“不幸的是,Flappy Bird 已停止”。我不明白为什么,而且由于我也是 Android 编程新手,我无法正确读取 Logcat 来调试错误。我发布了一些图片来配合我所看到的内容。

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

Logcat after trying to run the app

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

Debug

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

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

这是 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.access$600(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);

行中

以下是完整的 AndroidLauncher 类供引用:

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,它就工作了。

SDK Manager after installing API 23

关于java - 应用程序无法在 ADB 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36456087/

相关文章:

java - Java中的监视器和同步块(synchronized block)(看起来两个线程同时拥有一个监视器)

java - 如何导入jms

android - 将 SQLite 数据库从 sdcard 导入到 android - 没有 Assets 文件夹

android - Return 语句返回 null 而不是给定值

android - POPUPMENU 图标未在已发布的 apk 版本中显示

python - 如何为所有处理程序设置相同的日志记录格式?

java - 如何从另一个jar逐行打印日志?

java - 将类作为函数调用是什么意思?

java - 如何指定抽象类的具体实现版本在 Spring 中 Autowiring ?

jsf - 在 PhaseListener 中记录调用的托管 Bean 操作