99

当我运行我的应用程序时,每次我在我的 logcat 中收到以下异常:

 04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
    04-14 09:29:53.985: E/AndroidRuntime(1020): java.lang.RuntimeException: Unable to instantiate application   android.app.Application: java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.access$1300(ActivityThread.java:123)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.os.Looper.loop(Looper.java:137)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at java.lang.reflect.Method.invokeNative(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at java.lang.reflect.Method.invoke(Method.java:511)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at dalvik.system.NativeStart.main(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020): Caused by: java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     ... 11 more

注意:当我从模拟器中卸载应用程序并运行它时,我没有得到这个异常,但是当我在模拟器中重新运行安装的应用程序时,我得到了这个。请帮忙。

4

13 回答 13

195

这是当 dalvik 重新安装 .apk 文件并尝试重用或回收同一包中先前打开的活动/视图时(如果您尚未关闭先前安装的应用程序),底层框架引发的详细错误消息。它与您的应用程序无关,此外,您的应用程序不太可能因最终用户设备上的此详细错误消息而冻结或崩溃。

似乎这个 dalvik 详细错误日志只发生在 Android 4.0 系统上,我自己在 Android 3.2 和 2.3.3 运行环境中对其进行了测试,您无法复制以在它们都不显示此消息。之前已在此处讨论过类似的问题,并且有人在Android 问题跟踪器中填写了错误报告。

我认为你现在不用太在意这个冗长的错误日志,如果你在 Logcat 中查看这个红色错误之前和之后的更多日志,你可以看到完整的故事并发现之前打开的活动/视图(其中被标记为死亡状态)被杀死并且新重新安装的最终被弹出。

于 2012-04-14T23:31:44.080 回答
16

我意识到这是一个非常古老的问题,但无论如何这可能很有用。我发现当我在自己的开发中观察到这个错误时,这是​​由于我的应用程序之前运行的实例没有整齐地关闭,例如在退出之前关闭后台线程。

于 2013-07-17T17:44:12.823 回答
2

当我尝试在我的应用程序类中使用 JSOUP 连接到 Internet 时,我遇到了同样的错误。这很棘手,因为应用程序在模拟器上运行,而不是在实际设备上。原来,我只是错误地使用了 JSOUP 库。在新线程中加载页面 解决了我的问题。

希望我帮助了某人。

于 2014-07-25T20:43:52.903 回答
2

希望这可以帮助某人。单击此按钮转到模拟器上正在运行的应用程序:

在此处输入图像描述

在此处输入图像描述

关闭您尝试安装的应用程序,然后再次运行它。无需卸载/重新安装应用程序或清理项目。

于 2016-02-18T17:04:39.120 回答
1

对我来说,它有助于清理项目。在 Eclipse 中:
- Project --> Clean
Please control that Project --> Build Automatically is CHECKED
如果 gen-Folder 之后为空,则 res-folder 中有错误。通常,res-folder 中的错误不会被红叉显示!祝你好运和问候

于 2014-05-05T15:45:31.553 回答
1

简单的解决方案:

只需重新启动您的模拟器或移动设备。问题消失了!此问题的原因是以前的应用程序活动被错误地停止。

于 2020-02-14T07:19:55.840 回答
0

在我的情况下,在我将 Android Maven 项目导入新工作区后出现此错误,并且 SRC 文件夹未自动添加到构建路径中。

右键单击项目/构建路径/配置构建路径/源 - 检查是否缺少源。

于 2014-06-04T10:01:42.527 回答
0

我遇到了同样的问题。清理项目对我有用。

选择项目转到项目-> 清理

于 2014-11-15T04:58:27.610 回答
0

在我的情况下,logcat 告诉我它找不到初始活动,但 Dex 路径不同,它是“.../data/app/myapp-1”而不是“.../data/app/myapp” . 我解决了这个问题,在 Package explorer 窗口中单击 elcipse 项目名称“myapp”。然后右键单击它,->refactor->rename... 我将项目名称设置为 myapp-1,然后 ->refactor->rename... 并再次返回“myapp”。然后它起作用了...... eclipse中的一些错误?

于 2015-07-23T13:24:36.973 回答
0

我遇到了同样的问题。卸载我的应用程序然后重新安装它解决了这个问题。

于 2016-06-17T04:47:33.913 回答
0

当我导入由另一台机器构建的项目时,我遇到了这种情况。只是使缓存无效并重新启动

文件>无效缓存/重新启动>无效并重新启动

于 2017-03-27T06:29:25.573 回答
0

我在 (Module:app) build.gradle 文件上将 applicationId 更改为不同的内容,然后在我的设备上再次运行该应用程序。然后,我撤消更改并再次运行应用程序,一切正常。它适用于 Android Studio 2.3.1 和我在这里拥有的 4 种不同的设备,从 5.0 到 7.0。

于 2017-04-10T18:39:09.087 回答
0

我遇到了这个问题。使用时gradle cleangradle installDebug它工作正常!

   AndroidRuntime  D  Shutting down VM
E  FATAL EXCEPTION: main
E  Process: tv.panda.live.broadcast, PID: 4685
E  java.lang.RuntimeException: Unable to instantiate application tv.panda.live.broadcast.PandaApplication: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" o
   n path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDirectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:572)
E      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4883)
E      at android.app.ActivityThread.access$1500(ActivityThread.java:178)
E      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573)
E      at android.os.Handler.dispatchMessage(Handler.java:111)
E      at android.os.Looper.loop(Looper.java:194)
E      at android.app.ActivityThread.main(ActivityThread.java:5691)
E      at java.lang.reflect.Method.invoke(Native Method)
E      at java.lang.reflect.Method.invoke(Method.java:372)
E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
E  Caused by: java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" on path: DexPathList[[zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDi
   rectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E      at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E      at android.app.Instrumentation.newApplication(Instrumentation.java:988)
E      at android.app.LoadedApk.makeApplication(LoadedApk.java:567)
E      ... 10 more
E      Suppressed: java.lang.ClassNotFoundException: tv.panda.live.broadcast.PandaApplication
E          at java.lang.Class.classForName(Native Method)
E          at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E          at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E          at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E          ... 13 more
E      Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
于 2017-12-04T08:01:28.313 回答