遇到ANR问题的处理步骤
遇到ANR问题的处理步骤
问题描述
开发中难免会遇到ANR的问题,遇到ANR问题不要想着是因为设备的卡顿出现的问题,我们无法解决,我们应先找到导致ANR的原因,分析原因之后,再来判断这个问题可不可以解决。
找出原因的方法
第一步:查看log日志文件
先查看日志文件,在文件中搜索ANR字符,找到下面这句话
ANR in com.dream.ebag.recitetext (com.dream.ebag.recitetext/.activity.MainActivity)
看后面的包名,如果包名你应用的,那么说明导致ANR的原因是在你自己的代码里,所以需要着手去处理它。
在日志中,我们还会发现下面这一句
Wrote stack traces to '/data/anr/traces.txt'
将ANR的问题写入了trances.txt文件中,接着我们就去获取trances.txt文件。
第二步:获取/data/src/traces.txt文件
使用adb命令来获取traces.txt文件。
命令步骤如下:
- adb shell
进入手机 - cd data/anr
进入anr文件夹 - ll
查看所有的anr文件 - adb shell (Ctrl + D)
退出手机 - adb pull /data/anr/traces.txt
导出trances文件。其中trances.txt是你想要导出的trances文件的名称。
完成之后就可以在C:\User\用户名 目录下找到导出的文件。
第三步:分析traces.txt文件
打开trances.txt文件。从前往后看,查看到如下内容:
DALVIK THREADS (25):
"main" prio=5 tid=1 Suspended
| group="main" sCount=1 dsCount=0 obj=0x73edeee8 self=0xaad7ef50
| sysTid=12250 nice=0 cgrp=default sched=0/0 handle=0xf7291bec
| state=S schedstat=( 16245919762 711523055 2436 ) utm=1607 stm=17 core=0 HZ=100
| stack=0xff1d3000-0xff1d5000 stackSize=8MB
| held mutexes=
at java.lang.Character.isDigit(Character.java:2658)
======================================查看重点===========================================
at com.dream.ebag.recitetext.utils.StringUtils.getSpell(StringUtils.java:270)
at com.dream.ebag.recitetext.utils.HanziUtils.LD(HanziUtils.java:100)
at com.dream.ebag.recitetext.fragment.TryReciteFragment.onResults(TryReciteFragment.java:885)
======================================查看重点===========================================
at android.speech.SpeechRecognizer$InternalListener$1.handleMessage(SpeechRecognizer.java:456)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke!(Native method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
可以找到导致ANR是在自己应用的哪个类,哪行代码。
解决问题
这个步骤就只能具体问题具体分析了,去自己的代码里找到trances.txt文件中指向的那一行,分析问题之后,使用合适的方法解决。
遇到ANR问题的处理步骤的更多相关文章
- Android log 日志分析
一. Log 日志中 Bug 类型 程序异常强制关闭: Force Close ,Fatal 程序无响应: Application Not Response , ANR(应用无响应).一般是主线程超时 ...
- 如何分析解决Android ANR
来自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/detail ...
- 【转】如何分析解决Android ANR
来自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/detail ...
- Android ANR、Force Closed(转)
ANRs (“Application Not Responding”),意思是”应用没有响应“. 在如下情况下,Android会报出ANR错误: – 主线程 (“事件处理线程” / “UI线程”) 在 ...
- ANR的一个实例分析
ANR是android经常出的超时提示,以前看过一个帖子,内容是mediaplayer在release的时候出的ANR,作者也是出了方法,什么加handler之类的. 最后都么有解决,咱们先看看那位同 ...
- Android_app项目开发步骤总结
做了几个android企业应用项目后,总结了项目的基本开发步骤.希望可以交流. 一 应用规划: ※确定功能. ※必须的界面及界面跳转的流程. ※须要的数据及数据的来源及格 ...
- [转]ANR问题分析指南
引言 每天收到无数的兄弟团队的同事向系统转ANR JIRA,有些一旦遇到App ANR就直接转到系统组,有些简单看一下就转到系统组帮忙看一下.如此浩瀚的JIRA,我们什么事不做也处理不过来,请每个Ap ...
- Android ANR(应用无响应)解决分析【转】
本文转载自:https://blog.csdn.net/u014630142/article/details/81709459 来自: http://blog.csdn.net/tjy1985/art ...
- 如何分析解决Android ANR(转载)
转载自:http://blog.csdn.net/dadoneo/article/details/8270107 一:什么是ANR ANR:Application Not Responding,即应用 ...
随机推荐
- centos 上docker 运行出现/bin/sh: . not found
本人用的是Linux上的编译的....然后用了win上的编译命令 解决办法 : 用Linux上的编译命令..... CGO_ENABLED=0 GOOS=linux GOARCH=amd64 g ...
- NC 数据库操作
一.后台数据库操作方法(private端): 1.以下为后台查询方法 BaseDAO dao = new BaseDAO();//只能在private端使用 String querySql=" ...
- SOP - Validation
Table of Contents目录表1 Roles and Responsibilities related to validation与验证相关的1个角色和职责2 Introduction2引言 ...
- mysql的orde by 按照指定状态顺序排序
要求按照以下顺序排序 审核中->审核拒绝->待放款->放款失败->待还款->已结清->已逾期 { id:80, label:'审核中'},{ id:100, lab ...
- 【转】Android总结篇系列:Activity生命周期
[转]Android总结篇系列:Activity生命周期 Android官方文档和其他不少资料都对Activity生命周期进行了详细介绍,在结合资料和项目开发过程中遇到的问题,本文将对Activity ...
- Java中子类对象初始化的过程
Java中的继承机制看似简单,实际上包含了很多细节.最近在刷题过程中屡屡跳坑,于是自己仔细再学习了一下Java中子类初始化的细节,与大家分享. class Father { Father(){}; } ...
- 大前端学习笔记【七】关于CSS再次整理
如果你在日常工作中使用 CSS,你的主要目标可能会重点围绕着使事情“看起来正确”.如何实现这一点经常是远不如最终结果那么重要.这意味着比起正确的语法和视觉结果来说,我们更少关心 CSS 的工作原理. ...
- C++矩阵加速经典题目:Warcraft III 守望者的烦恼 [vijos 1067]
Warcraft III 守望者的烦恼 背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫"闪烁", ...
- linux时区和时间设置
1,修改时区 调整时区使用tzselect [root@lyn ~]# hwclock Tue Nov :: PM AST -0.198205 seconds [root@lyn ~]# tzsele ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...