08-20 03:24:43.148: WARN/WindowManager(61): Previous dispatch state: {{KeyEvent{action=0 code=20 repeat=0 meta=0 scancode=108 mFlags=8} to Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false} @ 1282274678139 lw=Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false} lb=android.os.BinderProxy@44010cf8 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false}}}
08-20 03:24:43.148: WARN/WindowManager(61): Current dispatch state: {{KeyEvent{action=1 code=20 repeat=0 meta=0 scancode=108 mFlags=8} to Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false} @ 1282274683156 lw=Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false} lb=android.os.BinderProxy@44010cf8 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{44013028 com.founder.apabi.reader/com.founder.apabi.reader.view.CatalogActivity paused=false}}}
08-20 03:24:43.178: INFO/Process(61): Sending signal. PID: 885 SIG: 3
08-20 03:24:43.388: INFO/Process(61): Sending signal. PID: 61 SIG: 3
08-20 03:24:43.388: INFO/dalvikvm(61): threadid=3: reacting to signal 3
08-20 03:24:43.538: INFO/dalvikvm(61): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:43.538: INFO/Process(61): Sending signal. PID: 121 SIG: 3
08-20 03:24:43.538: INFO/dalvikvm(121): threadid=3: reacting to signal 3
08-20 03:24:43.557: INFO/dalvikvm(121): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:43.568: INFO/Process(61): Sending signal. PID: 621 SIG: 3
08-20 03:24:43.568: INFO/dalvikvm(621): threadid=3: reacting to signal 3
08-20 03:24:43.578: INFO/dalvikvm(621): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:43.588: INFO/Process(61): Sending signal. PID: 265 SIG: 3
08-20 03:24:43.648: INFO/dalvikvm(265): threadid=3: reacting to signal 3
08-20 03:24:43.768: INFO/dalvikvm(265): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:43.808: INFO/Process(61): Sending signal. PID: 196 SIG: 3
08-20 03:24:43.888: INFO/dalvikvm(196): threadid=3: reacting to signal 3
08-20 03:24:44.008: INFO/Process(61): Sending signal. PID: 448 SIG: 3
08-20 03:24:44.057: INFO/dalvikvm(448): threadid=3: reacting to signal 3
08-20 03:24:44.188: INFO/dalvikvm(448): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:44.218: INFO/Process(61): Sending signal. PID: 128 SIG: 3
08-20 03:24:44.288: INFO/dalvikvm(128): threadid=3: reacting to signal 3
08-20 03:24:44.428: INFO/Process(61): Sending signal. PID: 193 SIG: 3
08-20 03:24:44.508: INFO/dalvikvm(193): threadid=3: reacting to signal 3
08-20 03:24:44.628: INFO/Process(61): Sending signal. PID: 125 SIG: 3
08-20 03:24:44.628: INFO/dalvikvm(125): threadid=3: reacting to signal 3
08-20 03:24:44.688: INFO/dalvikvm(125): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:44.758: ERROR/ActivityManager(61): ANR in com.founder.apabi.reader (com.founder.apabi.reader/.view.CatalogActivity)
08-20 03:24:44.758: ERROR/ActivityManager(61): Reason: keyDispatchingTimedOut
08-20 03:24:44.758: ERROR/ActivityManager(61): Load: 1.12 / 0.65 / 0.36
08-20 03:24:44.758: ERROR/ActivityManager(61): CPU usage from 98855ms to 55ms ago:
08-20 03:24:44.758: ERROR/ActivityManager(61):   er.apabi.reader: 96% = 96% user + 0% kernel
08-20 03:24:44.758: ERROR/ActivityManager(61):   system_server: 2% = 1% user + 0% kernel / faults: 581 minor
08-20 03:24:44.758: ERROR/ActivityManager(61):   adbd: 0% = 0% user + 0% kernel
08-20 03:24:44.758: ERROR/ActivityManager(61):   re-initialized>: 0% = 0% user + 0% kernel / faults: 20 minor
08-20 03:24:44.758: ERROR/ActivityManager(61):   logcat: 0% = 0% user + 0% kernel
08-20 03:24:44.758: ERROR/ActivityManager(61):   re-initialized>: 0% = 0% user + 0% kernel / faults: 7 minor
08-20 03:24:44.758: ERROR/ActivityManager(61):   ndroid.launcher: 0% = 0% user + 0% kernel / faults: 91 minor
08-20 03:24:44.758: ERROR/ActivityManager(61):   d.process.media: 0% = 0% user + 0% kernel / faults: 19 minor
08-20 03:24:44.758: ERROR/ActivityManager(61):   emo.android.bmi: 0% = 0% user + 0% kernel / faults: 7 minor
08-20 03:24:44.758: ERROR/ActivityManager(61): TOTAL: 100% = 99% user + 0% kernel + 0% softirq
08-20 03:24:45.438: INFO/dalvikvm(196): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:46.397: INFO/dalvikvm(128): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:24:46.457: INFO/dalvikvm(193): Wrote stack traces to '/data/anr/traces.txt'
08-20 03:27:29.868: DEBUG/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol

解决方案 »

  1.   

    08-20 03:59:07.448: ERROR/ActivityManager(61): ANR in com.founder.apabi.reader (com.founder.apabi.reader/.view.CatalogActivity)
    08-20 03:59:07.448: ERROR/ActivityManager(61): Reason: keyDispatchingTimedOut
    08-20 03:59:07.448: ERROR/ActivityManager(61): Load: 1.23 / 0.79 / 0.63
    08-20 03:59:07.448: ERROR/ActivityManager(61): CPU usage from 95060ms to 62ms ago:
    08-20 03:59:07.448: ERROR/ActivityManager(61):   system_server: 5% = 4% user + 1% kernel / faults: 3013 minor 8 major
    08-20 03:59:07.448: ERROR/ActivityManager(61):   debuggerd: 1% = 0% user + 1% kernel / faults: 32 minor 1 major
    08-20 03:59:07.448: ERROR/ActivityManager(61):   adbd: 0% = 0% user + 0% kernel / faults: 48 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   logcat: 0% = 0% user + 0% kernel / faults: 25 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   re-initialized>: 0% = 0% user + 0% kernel / faults: 265 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   emo.android.bmi: 0% = 0% user + 0% kernel / faults: 264 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   com.svox.pico: 0% = 0% user + 0% kernel / faults: 282 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   mmcqd: 0% = 0% user + 0% kernel
    08-20 03:59:07.448: ERROR/ActivityManager(61):   zygote: 0% = 0% user + 0% kernel / faults: 203 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   kswapd0: 0% = 0% user + 0% kernel
    08-20 03:59:07.448: ERROR/ActivityManager(61):   re-initialized>: 0% = 0% user + 0% kernel / faults: 231 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   events/0: 0% = 0% user + 0% kernel
    08-20 03:59:07.448: ERROR/ActivityManager(61):   id.defcontainer: 0% = 0% user + 0% kernel / faults: 133 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   d.process.media: 0% = 0% user + 0% kernel / faults: 132 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):   ndroid.settings: 0% = 0% user + 0% kernel / faults: 133 minor
    08-20 03:59:07.448: ERROR/ActivityManager(61):  +er.apabi.reader: 0% = 0% user + 0% kernel
    08-20 03:59:07.448: ERROR/ActivityManager(61):  +er.apabi.reader: 0% = 0% user + 0% kernel
    08-20 03:59:07.448: ERROR/ActivityManager(61): TOTAL: 79% = 70% user + 8% kernel + 0% iowait + 0% irq + 0% softirq
      

  2.   

    是的,建议将所有执行时间长的函数放到thread或者asychTask中去处理。
      

  3.   

    不像是楼上说的原因:
    涉及的代码模块(一个类)代码都贴这里,高手帮忙分析一下:
    package ..
    import ..public class CatalogAdapter extends BaseAdapter { private class ViewHolder {   
    TextView mTitle;
    TextView mDescription;
    Button mExpand;
    } private class Wrapper{
    public View convertView  = null;
    public ViewHolder holder = null;
    } private ArrayList<CEBXOutlineElemWrapper> mItems = null; private LayoutInflater mInflater = null; // temporary variable used for listener set.
    private int mTempPos = 0; private CatalogOperator mCatalogOperator = null; CatalogActivity mCatalogAtv = null; public CatalogAdapter(Context context,CatalogActivity catalogAtv,CatalogOperator catalogOperator) {
    mInflater = LayoutInflater.from(context);
    mCatalogAtv = catalogAtv;
    mCatalogOperator = catalogOperator; if (catalogAtv == null || catalogOperator == null) {
    Log.e("Error", "Input parameter error , null pointer in CatalogAdapter!");
    }
    } /*
     *  set outline source of one level. 
     */
    public void setSource(ArrayList<CEBXOutlineElemWrapper> elems) {
    mItems = elems;
    } @Override
    public int getCount() {
    return mItems.size();
    } @Override
    public Object getItem(int position) {
    if (mItems.isEmpty()) {
    Log.e("Error", "no items  in CatalogAdapter.getItem!");
    return null;
    }
    else {
    if (position >= 0 && position < mItems.size()) {
    return mItems.get(position);
    } else {
    Log.e("Error", "index out of bound in CatalogAdapter.getItem!");
    return null;
    }
    }
    } @Override
    public long getItemId(int position) {
    return position;
    } private boolean canBeExpanded(int position) {
    return false;
    //mask for test , debug dead bug.
    /* if (position < 0 || position >= mItems.size()) {
    Log.e("Error", "Index out of bound in CatalogAdapter.canBeExpanded!");
    throw new ArrayIndexOutOfBoundsException("error,my wrong understanding");
    }
    if (mItems.get(position) == null) {
    Log.e("Error", "null object stored in mItems in CatalogAdapter!");
    }
    return CatalogOperator.canBeExpanded(mItems.get(position));*/
    } private void placementHelper(Wrapper wrapper,boolean canBeExpanded) {
    if (wrapper == null) {
    Log.e("Error","input error, null pointer !");
    return;
    }
    if (wrapper.holder == null) {
    wrapper.holder = new ViewHolder();
    }
    if (canBeExpanded) {
    wrapper.convertView = mInflater.inflate(R.layout.custom_catalog_listitem_btn, null); 
    wrapper.holder.mTitle = (TextView)wrapper.convertView.findViewById(R.id.catalog_title1);
    wrapper.holder.mDescription = (TextView)wrapper.convertView.findViewById(R.id.catalog_pagenum1);
    wrapper.holder.mExpand = (Button)wrapper.convertView.findViewById(R.id.catalog_btn_expand);
    } else {
    wrapper.convertView = mInflater.inflate(R.layout.custom_catalog_listitem_no_btn, null); 
    wrapper.holder.mTitle = (TextView)wrapper.convertView.findViewById(R.id.catalog_title2);
    wrapper.holder.mDescription = (TextView)wrapper.convertView.findViewById(R.id.catalog_pagenum2);
    }
    wrapper.convertView.setTag(wrapper.holder);
    } @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    Calendar cal=Calendar.getInstance();
    long startTime = cal.getTimeInMillis(); boolean canBeExpanded  = false;//canBeExpanded(position);
    ViewHolder holder = null;
    if (convertView == null) {
    Wrapper wrapper = new Wrapper();
    wrapper.convertView = null;
    wrapper.holder = null;
    placementHelper(wrapper,canBeExpanded);
    holder = wrapper.holder;
    convertView = wrapper.convertView;
    convertView.setTag(holder);
    } else {   
    holder = (ViewHolder) convertView.getTag();
    if (holder == null) {
    Wrapper wrapper = new Wrapper();
    wrapper.convertView = null;
    wrapper.holder = null;
    placementHelper(wrapper,canBeExpanded);
    holder = wrapper.holder;
    convertView = wrapper.convertView;
    convertView.setTag(holder);
    Log.w("Warning","getTag is null , in CatalogAdapter.getView");
    }
    if ((canBeExpanded && holder.mExpand == null)
    || (!canBeExpanded && holder.mExpand != null)) {// 不可复用的旧视图
    Wrapper wrapper = new Wrapper();
    wrapper.convertView = null;
    wrapper.holder = holder;
    placementHelper(wrapper,canBeExpanded);
    holder = wrapper.holder;
    convertView = wrapper.convertView;
    convertView.setTag(holder);
    Log.w("Warning","realloc view , not usable old view.");
    }
    }    // debug codes.
    if (CatalogOperator.mShowDebuggingInfo) {
    if (holder == null) {
    Log.e("Error", "Holder is null");
    }
    if (holder.mTitle == null) {
    Log.e("Error", "Holder.mTitle is null");
    }
    } CEBXOutlineElemWrapper elem = mItems.get(position);
    if(elem != null) {
    holder.mTitle.setText("any");
    /* String title = elem.GetTitle();
    if (title != null) {
    holder.mTitle.setText(title);
    } else {
    holder.mTitle.setText("未命名");
    }*/
    // whether this is a time-cost function ?
    // setPageNum(holder,position);
    } else {
    Log.e("Error", "Program Error !");
    }
    mTempPos = position;
    // setListenerForRow(convertView);
    if (canBeExpanded) {
    setListenerForExpandBtn(holder,position);
    }
    if (convertView == null || holder == null) {
    Log.e("Error", "in CatalogAdapter.getView");
    } Log.i("Time : ", Long.toString(cal.getTimeInMillis() - startTime)); return convertView;
    } // set page number to holder for page showing
    private void setPageNum(ViewHolder holder,int position) {
    if (position < 0 || position >= mItems.size()) {
    if (CatalogOperator.mShowDebuggingInfo) {
    Log.e("Error", "Index out of bound in CatalogAdapter.setPageNum!");
    }
    }
    if (!CatalogOperator.calCatalogDest(mItems.get(position))) {
    if (CatalogOperator.mShowDebuggingInfo) {
    Log.e("Error", "false returned by calCatalogDest in CatalogAdapter.setPageNum!");
    }
    return;
    }
    CxGotoDest dest = CatalogOperator.getCatalogDest();
    if (dest == null) {
    Log.e("Error", "null returned by kernel calling !");
    }
    holder.mDescription.setText("第"+ Long.toString(dest.pagenum) + "页");
    } /*
     * 按下某目录项时的响应事件,假设用户是要打开此目录--定位图书,并返回到阅读界面。
     * set listener for each row view.
     */
    private void setListenerForRow(View convertView) {
    convertView.setOnClickListener(new View.OnClickListener() {
    private int mPos = mTempPos;
    @Override
    public void onClick(View v) {
    mCatalogAtv.getReadyForCatalogOpen(mPos);
    }
    });
    } /*
     * expand when the button is pressed.
     */
    private void setListenerForExpandBtn(ViewHolder holder,int position) {
    holder.mExpand.setOnClickListener(new View.OnClickListener() {
    private int mPos = mTempPos;
    @Override
    public void onClick(View v) {
    if (mPos < 0 || mPos >= mItems.size()) {
    Log.e("Error","Program Error in CatalogAdapter");
    return;
    } if (CatalogOperator.mShowDebuggingInfo) {
    if (mItems.get(mPos) == null) {
    Log.e("Error", "null pointer in setListenerForExpandBtn!");
    }
    } mItems = mCatalogOperator.getChildren(mItems.get(mPos)); if (CatalogOperator.mShowDebuggingInfo) {
    if (mItems == null) {
    Log.e("Error", "mItems is null!");
    }
    } notifyDataSetChanged(); if (CatalogOperator.mShowDebuggingInfo) {
    Log.i("Info", "OK here");
    }
    }
    });
    }}
      

  4.   

    It is a strong person upstairs.
      

  5.   

    应该是ANR问题,在主线程中作的耗时工作太长,所以
      

  6.   

    不知道楼主解决了没有,
    我今天碰到了好几个这样的问题。
    都导致应用force close
    应用未唤醒,或者服务未起来,导致消息无法分发到位。
    不知道是整个机制分发消息处理有问题,
    还是应用处理的问题。
    好难
      

  7.   

    我的问题解决了,是因为 getView 里有耗时的调用。
    看看你有没有类似的在主线程中耗时的操作或函数调用。
      

  8.   

    我现在也遇到类似的问题了
    http://topic.csdn.net/u/20101028/11/c61ceeec-f9d7-4e28-9e40-957c18df3aae.html
    可是不知道那里有比较耗时的调用呢?