【问题标题】:Does anyone understand the syntax of this? [closed]有谁理解这个的语法? [关闭]
【发布时间】:2013-05-18 04:04:31
【问题描述】:
    05-18 03:36:42.250: E/Trace(3525): error opening trace file: No such file or directory (2)
    05-18 03:36:42.640: D/AndroidRuntime(3525): Shutting down VM
    05-18 03:36:42.640: W/dalvikvm(3525): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    05-18 03:36:42.732: E/AndroidRuntime(3525): FATAL EXCEPTION: main
    05-18 03:36:42.732: E/AndroidRuntime(3525): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4364)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.ActivityThread.access$1300(ActivityThread.java:141)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.os.Handler.dispatchMessage(Handler.java:99)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.os.Looper.loop(Looper.java:137)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.ActivityThread.main(ActivityThread.java:5041)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at java.lang.reflect.Method.invokeNative(Native Method)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at java.lang.reflect.Method.invoke(Method.java:511)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at dalvik.system.NativeStart.main(Native Method)
    05-18 03:36:42.732: E/AndroidRuntime(3525): Caused by: java.lang.NullPointerException
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:379)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:322)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
    05-18 03:36:42.732: E/AndroidRuntime(3525):     ... 11 more
    05-18 03:36:56.010: D/gralloc_goldfish(3558): Emulator without GPU emulation detected.
    05-18 03:47:25.183: I/Choreographer(3558): Skipped 45 frames!  The application may be doing too much work on its main thread.
    05-18 03:47:39.080: D/gralloc_goldfish(3613): Emulator without GPU emulation detected.
    05-18 03:47:41.770: D/dalvikvm(3613): GC_CONCURRENT freed 84K, 7% free 2781K/2988K, paused 72ms+10ms, total 196ms
    05-18 03:47:41.770: D/dalvikvm(3613): WAIT_FOR_CONCURRENT_GC blocked 55ms
    05-18 03:47:45.579: D/dalvikvm(3613): GC_CONCURRENT freed 100K, 7% free 3083K/3300K, paused 5ms+20ms, total 226ms
    05-18 03:47:53.329: I/Choreographer(3613): Skipped 111 frames!  The application may be doing too much work on its main thread.

我知道这是我第二次发布错误消息,但请多多包涵,因为我最终会完全理解如何破译这些日志。但是有人可以帮我理解为什么我的日志以错误开头,然后开始说我的模拟开始工作了吗?

【问题讨论】:

    标签: android-emulator


    【解决方案1】:

    您发布的是堆栈跟踪。这是对最近发生的事情的跟踪,并追溯到发生了什么让你到达那里。

    您需要反向阅读。顶部(您发布内容的第一行)发生的事情是最近发生的事情。

    这样想:

    I feel pain in my finger.
    Just before that, my finger touched a hot burner.
    Just before that, my hand stopped moving.
    Just before that, my hand was moving down toward the burner.
    Just before that, my hand was over the stove.
    Just before that, my hand was just in front of the stove.
    Just before that, my hand was near the stove.
    Just before that, my hand was near my body.
    Just before that, my hand was by my side.
    

    【讨论】:

    • 很好的解释。你自己写的吗? :)
    • +1,很好的解释; )
    • @acdcjunior:是的。我以前烧过手指。事情就是这样发生的。 :-)
    • 嗯,这绝对让我朝着正确的方向前进,谢谢 :) 我还认为 stackoverflow.com/questions/9039017/… 这包括一个评论,其中有人有一个与我匹配的解决方案,即我必须确保在模拟器中,我在主屏幕上,应用程序无法在手机上运行。
    【解决方案2】:

    您的问题与模拟器开始运行的事实无关,您的问题是这一行:

    Caused by: java.lang.NullPointerException at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:379)
    

    这意味着在您的代码中的某处(如错误所述:在第 379 行,如果 LoadedApk 是您的班级)您正在尝试访问不是首先创建的东西,或者它的创建失败并且它持有 Null而不是实际的 valueObject

    【讨论】:

    • 我不认为分配 null 是空指针异常的工作原理......
    • 这对我来说没有意义;我的文件都没有那么长(379 行)
    • -1 有两个原因。首先,“您在代码中的某个位置分配了空值”并不是空指针分配的发生方式。其次,您忽略了整个问题,即堆栈跟踪中条目的顺序(而不是这些条目的内容)。
    • @KenWhite,我不认为你对第二部分是正确的,OP 问题是:“有人能帮我理解为什么我的日志以错误开头,然后开始说我的仿真开始工作”。我只是指出堆栈跟踪的第二部分(模拟器开始运行的事实)与实际异常之间没有任何联系。
    • 好的。 :-) 尽管您反对,但第一个原因的反对票仍然存在。 99.99999999%(当然是统计数据)所有空指针异常都不是由在代码中使用 Null 引起的。 (同样的百分比由尝试访问不是首先创建或创建失败的东西引起的,这与“您分配Null的地方”不同。
    猜你喜欢
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多