RuntimeException:无法实例化应用程序


97

当我运行应用程序时,每次在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

注意:当我从仿真器中卸载应用程序并运行它时,我没有收到此异常,但是当我在仿真器中重新运行已安装的应用程序时,却收到了此异常。请帮忙。


1
如果您的软件包是android.app.Application,请尝试更改软件包名称,kinda看起来可疑,类似于System的软件包。
不空白

另外,请确保您的应用已在清单中声明。
dcow 2012年

展开原因:java.lang.NullPointerException行。您的应用程序中应该有一条线的参考线
Zaid Daghestani 2012年

不,我没有像您在应用程序中提到的任何软件包。应用在清单中声明为: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.infy.meetingmanager.activity" android:versionCode="1" android:versionName="1.0" > <application...> <activity android:name=".LoginActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
user182944 '04

您的应用在哪个Android版本上运行4.0?
yorkw'4

Answers:


194

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

看来,此dalvik详细错误日志仅发生在Android 4.0系统上,我已经在Android 3.2和2.3.3运行环境中进行了自我测试,您无法在该环境中进行复制以使此消息均未显示在它们上。之前,这里已经讨论过类似的问题,有人在Android Issues Tracker中填写了错误报告

我认为您目前无需过多关注此错误日志,如果您在Logcat中出现此红色错误之前和之后都查看更多日志,则可以查看全文,并发现先前打开的活动/视图(其中被标记为死亡状态)被杀死,新安装的新安装的最终被弹出。


2
嗨,我的应用程序没有因为那个异常而崩溃或冻结,即使抛出异常,它的工作也很好。我只是在logcat中看到了异常,并且没有意识到这一点,因此想到了同样的问题。感谢您提供的信息,这是一个非常有用的信息。
user182944 '04

3
我在生产应用程序的开发人员控制台中得到了这个。它似乎主要发生在4.2,但我也见过其他版本(4.1、4.4)。
达斯汀2014年

3
@Dustin,你解决了吗?由于这种例外情况,每周最多报告34次!用户消息中很多抱怨!
thecr0w

1
我仍在Android 5.1.1中本地获取它。
2015年

1
即使在5.1.1上也会发生。到底是怎么回事?
Android开发人员

16

我意识到这是一个非常老的问题,但这仍然很有用。我发现,当我在自己的开发中观察到此错误时,这是​​由于先前运行的应用程序实例未完全关闭而导致的,例如,在退出之前关闭了后台线程。


是的,点击我手机上的“主页”按钮,然后再次运行它,对我也消除了此错误。
侵略者

是有道理的,但是当应用在用户面前打开时,如何将其整洁地关闭,然后Android将其杀死以进行升级呢?
2015年

在这种情况下,大概Android会调用onDestroy()方法,不是吗?人们希望如此。
朱利安·席姆斯(JulianSymes),2015年

2

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

希望我能帮助一个人。


2

希望这对某人有帮助。通过单击以下链接转到模拟器上正在运行的应用程序:

在此处输入图片说明

在此处输入图片说明

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


1

对我来说,它有助于清理项目。在Eclipse中:
-项目->清理
请控制该项目->自动生成已检查。
如果在那之后gen-Folder为空,则res文件夹中有错误。通常,红色文件夹不会显示res文件夹中的错误!祝你好运和问候


对我没有帮助。当我adb从一个生产apk升级到另一个生产apk时,会发生此问题,因此就我而言,这似乎并不是特定于IDE的。
2015年

0

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

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


0

我遇到了同样的问题。清理项目为我工作。

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


对我没有帮助。当我adb从一个生产apk升级到另一个生产apk时,会发生此问题,因此就我而言,这似乎并不是特定于IDE的。
2015年

0

在我的情况下,logcat告诉我它找不到初始活动,但是敏捷路径却不同,它是“ ... / data / app / myapp-1”而不是“ ... / data / app / myapp” 。我在Package Explorer窗口中单击了省略的项目名称“ myapp”,就得到了解决。然后右键单击它,-> refactor-> rename ...,将项目名称设置为myapp-1,然后,-> refactor-> rename ...,然后再次返回“ myapp”。然后它起作用了……日食中的一些bug?


0

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


0

当我导入由另一台机器构建的项目时,我经历了这一过程。只是使缓存无效并重新启动

File> Invalidate Caches / Restart>无效并重新启动


0

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


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

0

简单的解决方案:

只需重新启动模拟器或移动设备即可。问题就解决了!出现此问题的原因是由于先前的应用程序活动被错误地暂停。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.