致命的自旋挂起/卡在 ThreadID 上 [英] Fatal Spin-On-Suspend/Stuck on ThreadID

查看:22
本文介绍了致命的自旋挂起/卡在 ThreadID 上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为 Android 应用创建自定义日历.它现在的工作方式是从在线 MySQL 数据库中提取事件,将它们传输到 JSONArray,然后从那里将它们输入到日历中.它在模拟器上运行良好(如果有点慢),但今天我连接了我的 S3,它给了我以前没有收到的错误.我在日志中遇到的错误说:

I'm creating a custom calendar for an Android app. The way it works now is that it pulls events from an online MySQL database, transfers them into a JSONArray, and inputs them into the calendar from there. It was working fine (if a bit slow) on an emulator, but today I hooked up my S3 and it's giving me errors that I haven't received before. The errors I'm getting in my log say:

09-14 22:52:12.611:E/dalvikvm(4605):threadid=2:卡在threadid=1,放弃

09-14 22:52:12.611: E/dalvikvm(4605): threadid=2: stuck on threadid=1, giving up

09-14 22:52:12.611:E/dalvikvm(4605):致命的自旋挂起、转储线程

09-14 22:52:12.611: E/dalvikvm(4605): Fatal spin-on-suspend, dumping threads

这是它一直挂断的 ASyncTask:

This is the ASyncTask that it keeps getting hung up on:

package com.legends.app;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import android.os.AsyncTask;
import android.util.Log;

public class Events extends AsyncTask<Void, Void, String> {

    JSONArray jArray;
    public String result = null;
    InputStream is = null;
    StringBuilder sb=null;
    HttpEntity entity;

    protected String doInBackground(Void... arg0) {

          //http post - calls from the php file that opens the DB
          try{

               HttpClient httpclient = new DefaultHttpClient();
               HttpPost httppost = new HttpPost("http://legendsofnotredame.org/club/mobile/android/cal.php");
               HttpResponse response = httpclient.execute(httppost);

               entity = response.getEntity();

               }catch(Exception e){
                   Log.e("log_tag", "Error in http connection"+e.toString());
              }


          //convert response to string
            try{

                is = entity.getContent();

                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);

                 sb = new StringBuilder();

                 sb.append(reader.readLine() + "
");                 

                 String line="0";
                 while ((line = reader.readLine()) != null) {
                                sb.append(line + "
");
                  }
                  is.close();
                  result=sb.toString();
                  }catch(Exception e){
                        Log.e("log_tag", "Error converting result "+e.toString());
                  }
            Log.e("test","Converted results to string");
            return result;
    }

    protected void onPostExecute(String result) {


    }

}

添加大量日志后,我确定它挂断了sb.append(reader.readLine() + " ");",我不知道如何让它不做那.有什么提示吗?

After adding a ton of logs, I determined that it was getting hung up on "sb.append(reader.readLine() + " ");", and I'm not sure how to make it not do that. Any tips?

这是运行它的(几乎)完整的 logcat,从它挂在 readLine 上的位置开始.一开始我不得不删掉一些非警告/非错误行,因为这篇文章太长了,抱歉!

Here's the (almost) full logcat for running it, starting from where it hangs on readLine. I had to cute out some non-warning/non-error lines at the beginning because this post is too long, sorry!

09-15 14:02:13.251: W/dalvikvm(21710): threadid=2: spin on suspend #1 threadid=1 (pcf=0)
09-15 14:02:14.001: W/dalvikvm(21710): threadid=2: spin on suspend #2 threadid=1 (pcf=0)
09-15 14:02:14.752: W/dalvikvm(21710): threadid=2: spin on suspend #3 threadid=1 (pcf=0)
09-15 14:02:15.503: W/dalvikvm(21710): threadid=2: spin on suspend #4 threadid=1 (pcf=0)
09-15 14:02:16.254: W/dalvikvm(21710): threadid=2: spin on suspend #5 threadid=1 (pcf=0)
09-15 14:02:16.254: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:16.254: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:16.254: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:16.254: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:16.254: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:16.254: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:16.254: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:16.254: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:16.254: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=640 stm=5 core=0
09-15 14:02:16.254: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:16.254: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:16.254: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:16.254: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:16.254: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:16.254: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:16.254: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:17.005: W/dalvikvm(21710): threadid=2: spin on suspend #6 threadid=1 (pcf=0)
09-15 14:02:17.005: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:17.005: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:17.005: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:17.005: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:17.005: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:17.005: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:17.005: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:17.005: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:17.005: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=712 stm=5 core=0
09-15 14:02:17.015: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:17.015: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:17.015: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:17.015: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:17.015: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:17.015: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:17.015: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:17.765: W/dalvikvm(21710): threadid=2: spin on suspend #7 threadid=1 (pcf=0)
09-15 14:02:17.765: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:17.765: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:17.765: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:17.765: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:17.765: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:17.765: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:17.765: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:17.765: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:17.765: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=762 stm=5 core=0
09-15 14:02:17.765: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:17.765: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:17.765: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:17.765: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:17.765: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:17.765: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:17.765: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:18.516: W/dalvikvm(21710): threadid=2: spin on suspend #8 threadid=1 (pcf=0)
09-15 14:02:18.516: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:18.516: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:18.516: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:18.516: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:18.516: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:18.516: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:18.516: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:18.516: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:18.516: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=834 stm=5 core=0
09-15 14:02:18.516: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:18.516: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:18.516: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:18.516: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:18.516: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:18.516: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:18.516: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:19.267: W/dalvikvm(21710): threadid=2: spin on suspend #9 threadid=1 (pcf=0)
09-15 14:02:19.267: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:19.267: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:19.267: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:19.267: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:19.267: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:19.267: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:19.267: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:19.267: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:19.267: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=906 stm=5 core=0
09-15 14:02:19.267: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:19.267: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:19.267: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:19.267: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:19.267: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:19.267: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:19.267: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:20.018: W/dalvikvm(21710): threadid=2: spin on suspend #10 threadid=1 (pcf=0)
09-15 14:02:20.018: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:20.018: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=979 stm=5 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:20.018: E/dalvikvm(21710): Fatal spin-on-suspend, dumping threads
09-15 14:02:20.018: I/dalvikvm(21710): DALVIK THREADS:
09-15 14:02:20.018: I/dalvikvm(21710): (mutexes: tll=2 tsl=1 tscl=0 ghl=1)
09-15 14:02:20.018: I/dalvikvm(21710): "main" prio=5 tid=1 RUNNABLE JIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x40c3fcd0 self=0x10c2c30
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21710 nice=0 sched=0/0 cgrp=default handle=1074750856
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=979 stm=5 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at com.legends.app.CalendarActivity.onCreate(CalendarActivity.java:~122)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.Activity.performCreate(Activity.java:4470)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.Looper.loop(Looper.java:137)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.app.ActivityThread.main(ActivityThread.java:4514)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.reflect.Method.invokeNative(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.reflect.Method.invoke(Method.java:511)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.main(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "AsyncTask #1" prio=5 tid=11 SUSPENDED
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x41a23660 self=0x12d4758
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21739 nice=10 sched=0/0 cgrp=bg_non_interactive handle=19348592
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=18 stm=2 core=1
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:~128)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.StringBuilder.append(StringBuilder.java:271)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.io.BufferedReader.readLine(BufferedReader.java:417)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.legends.app.Events.doInBackground(Events.java:56)
09-15 14:02:20.018: I/dalvikvm(21710):   at com.legends.app.Events.doInBackground(Events.java:1)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.AsyncTask$2.call(AsyncTask.java:264)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
09-15 14:02:20.018: I/dalvikvm(21710):   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Thread.run(Thread.java:856)
09-15 14:02:20.018: I/dalvikvm(21710): "Binder Thread #2" prio=5 tid=10 SUSPENDED
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x419b8f08 self=0x12dec18
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21722 nice=0 sched=0/0 cgrp=default handle=18856864
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "Binder Thread #1" prio=5 tid=9 SUSPENDED
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x419b8540 self=0x12dcf78
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21721 nice=0 sched=0/0 cgrp=default handle=19135504
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x419b53d8 self=0x12e6520
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21720 nice=0 sched=0/0 cgrp=default handle=18832048
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=1
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710):   - waiting on <0x40c474f0> (a java.lang.Daemons$FinalizerWatchdogDaemon)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Object.java:364)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:213)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Thread.run(Thread.java:856)
09-15 14:02:20.018: I/dalvikvm(21710): "FinalizerDaemon" daemon prio=5 tid=7 WAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x419b5280 self=0x12d3a48
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21719 nice=0 sched=0/0 cgrp=default handle=18676648
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710):   - waiting on <0x40c355d0> (a java.lang.ref.ReferenceQueue)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Object.java:401)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Thread.run(Thread.java:856)
09-15 14:02:20.018: I/dalvikvm(21710): "ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="main" sCount=1 dsCount=0 obj=0x419b5118 self=0x12e7bd8
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21718 nice=0 sched=0/0 cgrp=default handle=18676448
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710):   - waiting on <0x40c354f8> 
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Object.wait(Object.java:364)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:128)
09-15 14:02:20.018: I/dalvikvm(21710):   at java.lang.Thread.run(Thread.java:856)
09-15 14:02:20.018: I/dalvikvm(21710): "Compiler" daemon prio=5 tid=5 VMWAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="system" sCount=1 dsCount=0 obj=0x419b5028 self=0x12b2640
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21717 nice=0 sched=0/0 cgrp=default handle=18856760
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=2 stm=2 core=1
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "JDWP" daemon prio=5 tid=4 VMWAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="system" sCount=1 dsCount=0 obj=0x419b4f40 self=0x1269cc0
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21715 nice=0 sched=0/0 cgrp=default handle=19135712
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=1
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "Signal Catcher" daemon prio=5 tid=3 VMWAIT
09-15 14:02:20.018: I/dalvikvm(21710):   | group="system" sCount=1 dsCount=0 obj=0x419b4e48 self=0x12abed8
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21713 nice=0 sched=0/0 cgrp=default handle=18712776
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: I/dalvikvm(21710): "GC" daemon prio=5 tid=2 RUNNABLE
09-15 14:02:20.018: I/dalvikvm(21710):   | group="system" sCount=0 dsCount=0 obj=0x419b4d68 self=0x124d8e8
09-15 14:02:20.018: I/dalvikvm(21710):   | sysTid=21712 nice=0 sched=0/0 cgrp=default handle=19191584
09-15 14:02:20.018: I/dalvikvm(21710):   | schedstat=( 0 0 0 ) utm=0 stm=0 core=0
09-15 14:02:20.018: I/dalvikvm(21710):   at dalvik.system.NativeStart.run(Native Method)
09-15 14:02:20.018: E/dalvikvm(21710): threadid=2: stuck on threadid=1, giving up
09-15 14:02:20.018: D/dalvikvm(21710): threadid=2: sending two SIGSTKFLTs to threadid=1 (tid=21710) to cause debuggerd dump
09-15 14:02:20.018: D/dalvikvm(21710): NOTE: pthread_kill #1 failed: Operation not permitted
09-15 14:02:22.010: D/dalvikvm(21710): NOTE: pthread_kill #2 failed: Operation not permitted
09-15 14:02:22.010: D/dalvikvm(21710): Sent, pausing to let debuggerd run
09-15 14:02:30.018: D/dalvikvm(21710): Continuing
09-15 14:02:30.018: E/dalvikvm(21710): VM aborting

这是我在主活动中调用它的地方.这也是两个单独的文件,我不知道这是否相关,但可能是,我不知道.

And here's where I call it in the main Activity. These are also two separate files, I don't know if that's relevant but it might be, I don't know.

 Events db = new Events();
        db.execute();
        while (db.result == null){
         continue;}
        result = db.result;

推荐答案

我在玩了一天之后终于明白了.由于非 AsyncTask 中的这些行,它超时了:

I figured it out after another day of playing around with it. It was timing out because of these lines in the non-AsyncTask:

while (db.result == null) {
    continue;
}

它认为你永远被困在一个while循环中,因此程序一定已经崩溃了",而实际上它只是花时间阅读事件.但是,如果没有它,它会在没有完全加载事件的情况下继续前进,当它尝试使用该数组时会创建 NullPointerException.我所做的是这样做:

It took this as "you're caught forever in a while loop and therefore the program must have crashed", when in reality it was just taking time to read the events. However, without that there it would just move on without having fully loaded the events, creating a NullPointerException when it tries to use that array. What I did instead was do this:

while (db.result == null){
   try {
      Thread.sleep(100);
   } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
   }
   continue;
}

睡眠似乎发送回应用程序,我还在那里,只是在等待数据,以便我可以继续.要么是这样,要么会减慢我通过 while 循环的次数.不确定它做了哪一个,但无论哪种方式都可以解决问题.

The sleeping seems to send back to the app that I'm still there, just waiting for the data so I can continue. Either that or it slows down the amount of times I go through the while loop. Not sure which one it does but either way it solves the problem.

这篇关于致命的自旋挂起/卡在 ThreadID 上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆