一般来说App Crash类型有
1. Java Crash:
Uncaught Exception
检查 Android System log是否有“FATAL EXCEPTION xxxx” / “am_crash”
检查“java.lang.xxx”是哪种exception 发生了
检查“at xxxx”是在哪儿发生了exception
E/AndroidRuntime( 1651): FATAL EXCEPTION: main
E/AndroidRuntime( 1651): java.lang.NullPointerException
E/AndroidRuntime( 1651): at com.xxxxx (xxx.java :123)
很多种:
java.lang.IllegalStateException
java.lang.RuntimeException: Unable to start activity
java.lang.NullPointerException
java.lang.IllegalStateException:
Activity xxxActivity has leaked IntentReceiver
android.view.WindowLeaked:
java.lang.NoSuchMethodError:
java.lang.IndexOutOfBoundsException:
java.lang.StringIndexOutOfBoundsException
……
现象:xxx is not responding. “force close” or “wait”
ANR type:
KeyDispatchTimeout (5 seconds) -- 大部分都是这个问题
A key or touch event was not dispatched within the specified time.
“Reason:xxx” is Reason:keyDispatchingTimeOut
BroadcastTimeout (10 seconds)
A BroadcastReceiver didn’t finish executing within the specified time.
“Reason:xxx” is Reason:Broadcast of Intent { act=xxx
ServiceTimeout (20 seconds) -- 比较少见的
Service didn’t finish executing within the specified time
“Reason:xxx” is Reason:Executing service xxxx
怎么检测:
Look at “ANR in xxxx” / “Application is not responding” / “am_anr” and check where ANR occurred
05-01 16:13:11.572 I/InputDispatcher( 221): Application is not responding: Window{2b263310 com.android.email/com.android.email.activity.SplitScreenActivity paused=false}. 5009.8ms since event, 5009.5ms since wait started
05-01 16:13:11.572 I/WindowManager( 221): Input event dispatching timed out sending to com.android.email/com.android.email.activity.SplitScreenActivity
05-01 16:13:14.123 I/Process ( 221): Sending signal. PID: 21404 SIG: 3
05-01 16:13:14.123 I/dalvikvm(21404): threadid=4: reacting to signal 3
……
05-01 16:13:15.872 E/ActivityManager( 221): ANR in com.android.email (com.android.email/.activity.SplitScreenActivity)
05-01 16:13:15.872 E/ActivityManager( 221): Reason: keyDispatchingTimedOut
05-01 16:13:15.872 E/ActivityManager( 221): Load: 8.68 / 8.37 / 8.53
05-01 16:13:15.872 E/ActivityManager( 221): CPU usage from 4361ms to 699ms ago:
05-01 16:13:15.872 E/ActivityManager( 221): 5.5% 21404/com.android.email: 1.3% user + 4.1% kernel / faults: 10 minor
05-01 16:13:15.872 E/ActivityManager( 221): 4.3% 220/system_server: 2.7% user + 1.5% kernel / faults: 11 minor 2 major
05-01 16:13:15.872 E/ActivityManager( 221): 0.9% 52/spi_qsd.0: 0% user + 0.9% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 0.5% 65/irq/170-cyttsp-: 0% user + 0.5% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 0.5% 296/com.android.systemui: 0.5% user + 0% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 100% TOTAL: 4.8% user + 7.6% kernel + 87% iowait
05-01 16:13:15.872 E/ActivityManager( 221): CPU usage from 3697ms to 4223ms later:
05-01 16:13:15.872 E/ActivityManager( 221): 25% 21404/com.android.email: 25% user + 0% kernel / faults: 191 minor
05-01 16:13:15.872 E/ActivityManager( 221): 16% 21603/__eas(par.hakan: 16% user + 0% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 7.2% 21406/GC: 7.2% user + 0% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 1.8% 21409/Compiler: 1.8% user + 0% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 5.5% 220/system_server: 0% user + 5.5% kernel / faults: 1 minor
05-01 16:13:15.872 E/ActivityManager( 221): 5.5% 263/InputDispatcher: 0% user + 5.5% kernel
05-01 16:13:15.872 E/ActivityManager( 221): 32% TOTAL: 28% user + 3.7% kernel
ANR详见http://developer.android.com/guide/practices/design/responsiveness.html
Native crash
Look at “pid: xx, tid:xx >>> xxxxxx <<<<
Look at “signal xxxx”, and check what’s the cause of the crash
I/DEBUG ( 107): pid: 2026, tid: 2026 >>> com.xx.xx.xx<<<
I/DEBUG ( 107): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadcafe
I/DEBUG ( 107): r0 00000000 r1 00000001 r2 afd46628 r3 deadcafa
I/DEBUG ( 107): r4 afd46470 r5 00000000 r6 deadcb02 r7 0000a000
I/DEBUG ( 107): r8 beb25420 r9 42154df0 10 42154dd8 fp acaa5d48
I/DEBUG ( 107): ip 00000000 sp beb253f8 lr afd10e98 pc afd131ee cpsr a0000030
...
I/DEBUG ( 107): #00 pc 000131ee /system/lib/libc.so
I/DEBUG ( 107): #01 pc 00014522 /system/lib/libc.so