如何快速定位Android问题

章节内容
第一节 搜索bug关键字
第二节 应用奔溃定位
第三节 内存不足问题定位
第四节 异常死机重启
第五节 应用无响应(ANR)
第六节 OOM导致系统重启
第六节 代码调试技巧
第七节 关机分析
第八节 调试技巧

第一节 搜索bug关键字
当发生bug时,输出大量的log,可以通过搜索以下关键字快速的定位问题:
AndroidRuntime: FATAL EXCEPTION (应用程序中出现致命异常)
ArrayIndexOutOfBoundsException (数组越界)
on a null object reference (空指针)
Low on memory (内存不足)、leak (泄露)
crash (崩溃)、error(错误)、 FATAL、 EXCEPTION
WATCHDOG KILLING (发生定时狗导致系统异常重启)
held by (可能发生死锁)

第二节 应用奔溃定位
AndroidRuntime: FATAL EXCEPTION是 Android 应用程序中出现致命异常的标志,通常伴随着具体的错误类型和堆栈信息,用以定位和解决问题。
案例一分析
【0424量产主干/中美客户/】hdmi信源下切信源到AV信源出现瞬间闪花屏,进入AV信源后AV信源黑屏显示,再次切信源AV还是黑屏,多切几次后出电视自动重启。
在log搜索AndroidRuntime关键字:

06-19 04:33:39.465 2195 2195 D AndroidRuntime: Shutting down VM
06-19 04:33:39.465 2195 2195 E AndroidRuntime: FATAL EXCEPTION: main
06-19 04:33:39.465 2195 2195 E AndroidRuntime: Process: com.realtek.tv, PID: 2195
06-19 04:33:39.465 2195 2195 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean com.realtek.tv.util.PipInputManager$PipInput.isPassthrough()’ on a null object reference
06-19 04:33:39.465 2195 2195 E AndroidRuntime: at com.realtek.tv.util.PipInputManager$1.onInputStateChanged(PipInputManager.java:113)
06-19 04:33:39.465 2195 2195 E AndroidRuntime: at com.realtek.tv.util.TvInputManagerHelper 1. o n I n p u t S t a t e C h a n g e d ( T v I n p u t M a n a g e r H e l p e r . j a v a : 95 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . m e d i a . t v . T v I n p u t M a n a g e r 1.onInputStateChanged(TvInputManagerHelper.java:95) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.media.tv.TvInputManager 1.onInputStateChanged(TvInputManagerHelper.java:95)061904:33:39.46521952195EAndroidRuntime:atandroid.media.tv.TvInputManagerTvInputCallbackRecord 4. r u n ( T v I n p u t M a n a g e r . j a v a : 1352 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . o s . H a n d l e r . h a n d l e C a l l b a c k ( H a n d l e r . j a v a : 958 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . o s . H a n d l e r . d i s p a t c h M e s s a g e ( H a n d l e r . j a v a : 99 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . o s . L o o p e r . l o o p O n c e ( L o o p e r . j a v a : 205 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . o s . L o o p e r . l o o p ( L o o p e r . j a v a : 294 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t a n d r o i d . a p p . A c t i v i t y T h r e a d . m a i n ( A c t i v i t y T h r e a d . j a v a : 8177 ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( N a t i v e M e t h o d ) 06 − 1904 : 33 : 39.46521952195 E A n d r o i d R u n t i m e : a t c o m . a n d r o i d . i n t e r n a l . o s . R u n t i m e I n i t 4.run(TvInputManager.java:1352) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:958) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:205) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.os.Looper.loop(Looper.java:294) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8177) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 06-19 04:33:39.465 2195 2195 E AndroidRuntime: at com.android.internal.os.RuntimeInit 4.run(TvInputManager.java:1352)061904:33:39.46521952195EAndroidRuntime:atandroid.os.Handler.handleCallback(Handler.java:958)061904:33:39.46521952195EAndroidRuntime:atandroid.os.Handler.dispatchMessage(Handler.java:99)061904:33:39.46521952195EAndroidRuntime:atandroid.os.Looper.loopOnce(Looper.java:205)061904:33:39.46521952195EAndroidRuntime:atandroid.os.Looper.loop(Looper.java:294)061904:33:39.46521952195EAndroidRuntime:

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieike88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值