How do I know where my app received an ANR

by idev » Wed, 01 Apr 2009 16:02:59 GMT

Sponsored Links

Is there a way of finding out where my app threw an ANR (Application
Not Responding). I took a look at the traces.txt file in /data and I
see a trace for my application. This is what I see in the trace.

"main" prio=5 tid=3 TIMED_WAIT
  | group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8
  | sysTid=691 nice=0 sched=0/0 handle=-1091117924
  at java.lang.Object.wait(Native Method)
  - waiting on <0x1cd570> (a android.os.MessageQueue)
  at java.lang.Object.wait(
  at android.os.Looper.loop(
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(
  at dalvik.system.NativeStart.main(Native Method)

"Binder Thread #3" prio=5 tid=15 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x434e7758
  | sysTid=734 nice=0 sched=0/0 handle=1733632
  at Method)

"Binder Thread #2" prio=5 tid=13 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x433af808
  | sysTid=696 nice=0 sched=0/0 handle=1369840
  at Method)

"Binder Thread #1" prio=5 tid=11 NATIVE
  | group="main" sCount=1 dsCount=0 s=0 obj=0x433aca10
  | sysTid=695 nice=0 sched=0/0 handle=1367448
  at Method)

"JDWP" daemon prio=5 tid=9 VMWAIT
  | group="system" sCount=1 dsCount=0 s=0 obj=0x433ac2a0
  | sysTid=694 nice=0 sched=0/0 handle=1367136
  at Method)

"Signal Catcher" daemon prio=5 tid=7 RUNNABLE
  | group="system" sCount=0 dsCount=0 s=0 obj=0x433ac1e8
  | sysTid=693 nice=0 sched=0/0 handle=1366712
  at Method)

"HeapWorker" daemon prio=5 tid=5 VMWAIT
  | group="system" sCount=1 dsCount=0 s=0 obj=0x4253ef88
  | sysTid=692 nice=0 sched=0/0 handle=1366472
  at Method)

----- end 691 -----

How can I find out where the problem is?



How do I know where my app received an ANR

by dillirao malipeddi » Wed, 01 Apr 2009 19:15:00 GMT

 You must not run any complex operations on main thread
like i/o , or network operations

for those operations use separate thread , otherwise it will cause ANR

Dilli Rao. M


Sponsored Links

Other Threads

1. Does ResultReceiver work across packages?

I have an activity in package A (SignerClient), and a service in
package B (MyService)

The activity's resultreceiver:

private ResultReceiver resultreceiver = new ResultReceiver(null) {
            protected void onReceiveResult(int resultCode, Bundle
resultData) {

Starting the service:

Intent intent = new Intent("com.example.STARTSERVICE");
intent.putExtra("resultreceiver", resultreceiver);

Receiving end:

 ResultReceiver rr = (ResultReceiver)

Doing this when client and server are in the same package works fine.
But in this case i get:

FATAL EXCEPTION: IntentService[MyService]
android.os.BadParcelableException: ClassNotFoundException when
unmarshalling: com.example.cryptoclient.SignerClient$1
at android.os.Parcel.readParcelable(
at android.os.Parcel.readValue(
at android.os.Parcel.readMapInternal(
at android.os.Bundle.unparcel(
at android.os.Bundle.getParcelable(
at android.content.Intent.getParcelableExtra(
at org.axades.service.MyService.onHandleIntent(
at android.os.Handler.dispatchMessage(
at android.os.Looper.loop(

What am I missing? Is my idea even possible?


2. "MiB" in "Create new Android Virtual Device"

This may sound like a stupid question, but what the heck does "MiB"
stand for in the "Create new Android Virtual Device" dialog in
Eclipse?  It -seems- like it means "megabyte", but in my 29 years of
programming, not once have I ever seen "MiB" as an acronym for
megabyte.  It's aways been MB and sometimes "Meg" and sometimes
incorrectly as "Mb" or "mb", but never "MiB".  That's why I'm asking,
and since I'm a newb to Android (not newb to programming) I'm thinking
maybe this is something Android specific and means something else



3. onCreate() vs class variable initializers

4. How to get this information (In this picture) to TextView on Android ?

5. Magnetic Sensor

6. [WTA] : Disable Themes ADW

7. JUnit test case blocking main UI thread for AsyncTask