RuntimeException:无法实例化应用程序

时间:2012-04-14 04:05:30

标签: android android-intent android-emulator

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

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

13 个答案:

答案 0 :(得分:194)

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

似乎这个dalvik详细错误日志只发生在Android 4.0系统上,我在Android 3.2和2.3.3运行环境中自己测试过,在那里你无法复制以显示这两个消息。之前在here已经讨论了类似的问题,有人填写了Android Issues Tracker中的错误报告。

我认为你现在不应该过多关注这个详细的错误日志,如果你在Logcat中看到这个红色错误之前和之后的更多日志,你可以看到完整的故事并找到之前打开的活动/视图(被标记为死亡状态)被杀死,新重新安装的视图最终被限制。

答案 1 :(得分:16)

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

答案 2 :(得分:2)

当我尝试使用我的应用程序类中的JSOUP连接到Internet时,我遇到了同样的错误。 这很棘手,因为应用程序在模拟器上运行但在实际设备上运行。 原来,我刚刚使用JSOUP库错了。 Loading page in new thread解决了我的问题。

希望我能帮助别人。

答案 3 :(得分:2)

希望这有助于某人。 单击此处转到模拟器上正在运行的应用程序:

enter image description here

enter image description here

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

答案 4 :(得分:1)

对我而言,这有助于清理项目。 在Eclipse中:
- 项目 - >清洁
请控制该项目 - >自动构建已检查
如果此后gen-Folder为空,则res文件夹中存在错误。红十字通常不会显示res文件夹中的错误! 祝你好运和问候

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

在我的情况下,logcat告诉我它没有找到初始活动,但是Dex Path是不同的,它是" ... / data / app / myapp-1"而不是" ... / data / app / myapp"。 我发现这个点击了elcipse项目名称" myapp"在包浏览器窗口中。然后右键单击它, - >重构 - >重命名... 我将项目名称设置为myapp-1,然后, - > refactor->重命名...然后再返回到" myapp"。 然后它工作了......日食中的一些错误?

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

我遇到了这个问题。 使用gradle clean时,gradle 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

答案 12 :(得分:0)

简单解决方案:

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