【问题标题】:What does this error in my Logcat mean我的 Logcat 中的这个错误是什么意思
【发布时间】:2014-04-06 12:23:01
【问题描述】:

我无法理解我的 Logcat 中的错误,你能帮我解决这个问题吗?

    04-06 08:17:54.738: E/AndroidRuntime(4491): FATAL EXCEPTION: AsyncTask #1
    04-06 08:17:54.738: E/AndroidRuntime(4491): java.lang.RuntimeException: An error   occured while executing doInBackground()
04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.lang.Thread.run(Thread.java:841)
04-06 08:17:54.738: E/AndroidRuntime(4491): Caused by: java.lang.NullPointerException: println needs a message
04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.util.Log.println_native(Native Method)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.util.Log.e(Log.java:231)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at com.example.logintest.adduser$AssCrounTask.doInBackground(adduser.java:118)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at com.example.logintest.adduser$AssCrounTask.doInBackground(adduser.java:1)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-06 08:17:54.738: E/AndroidRuntime(4491):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-06 08:17:54.738: E/AndroidRuntime(4491):     ... 4 more

【问题讨论】:

    标签: android performance android-logcat


    【解决方案1】:

    要向 logcat 报告崩溃,您应该使用 Log.d/v/etc(TAG, Message, Throwable) 而不是 e.printStackTrace()


    无论如何,您的代码会崩溃,因为 e.getMessage() 可能为 null 并且 Log 不接受 null 作为消息。

    所以把你的行改为

    Log.e("MY_APP_error!", "Error!", e);
    

    【讨论】:

    • printStacktrace()是什么?我以为会报错
    • 是的,但是在控制台应用程序中它在 android 中可能没问题,但不是。评论太长了,所以我为你找到了这个答案:stackoverflow.com/questions/7469316/…
    【解决方案2】:

    您在Log 中输入的消息为空。就写在这里:

    Caused by: java.lang.NullPointerException: println needs a message
    04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.util.Log.println_native(Native Method)
    04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.util.Log.e(Log.java:231)
    04-06 08:17:54.738: E/AndroidRuntime(4491):     at com.example.logintest.adduser$AssCrounTask.doInBackground(adduser.java:118)
    

    检查您在Log 消息中使用的内容。

    【讨论】:

    • 更多帮助:adduser.java 的第 118 行
    • 这是我在第 118 行添加的内容 adduser.java Log.e("MY_APP_error!", e.getMessage());这是我的catch(IOException e)
    • 使用 e.printStacktrace();而不是记录 e.getMessage()
    • e.printStackTrace() 确实是一种更好的方式来查看发生了什么。
    【解决方案3】:

    正如你的日志猫所说的

    04-06 08:17:54.738: E/AndroidRuntime(4491): Caused by: java.lang.NullPointerException: println needs a message
    04-06 08:17:54.738: E/AndroidRuntime(4491):     at android.util.Log.println_native(Native Method)
    

    你有一个 NullPointerException,可能你调用了 Log.e() 并在一个变量中传递了一个空值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多