Android平台下奔溃Crash和无响应ANR日志抓取分析

一、使用AndroidStudio

在logcat中查看实时日志,需要选择连接的手机和应用包名

AS下载链接

二、使用adb shell dumpsys dropbox命令获取

#!/bin/bash
# path="/data/system/dropbox"   # 在手机这个目录下存储了崩溃日志
newest_time=$(adb shell dumpsys dropbox | grep 'data_app_crash' | awk 'END {print $1,$2}')
adb shell dumpsys dropbox --print ${newest_time}
# echo -e "时间是:${newest_time}"

三、使用adb+logcat获取

# 清除日志,日志内容很多,对于能毕现的日志,可以先清除后重新获取
adb logcat -c
# 然后再次运行崩溃操作,再抓取日志
# 存储日志到当前目录下的 carsh.log 中
adb logcat -d *:W > crash.log 
# W指的是警告以上日志
# 这个日志文件包含了所有打印的日志,需要自己筛选下崩溃日志,比如搜索 begin、crash、Exception
# 为了更精确的筛选日志,可以加入筛选条件
adb logcat -d *:W grep "包名" >E:\crashlog2.txt

四、获取无响应ANR的日志

# 在/data/anr/目录下存储所有了ANR日志(Application Not Responding)
adb pull /data/anr/ ~/Downloads

五、常见的异常汇总

NullPointerException:指针为空异常java.lang.NullPointerException: Attempt to invoke virtual method ‘…’ on a null object reference
ClassCastException:类型转换异常java.lang.ClassCastException: … cannot be cast to …
IllegalArgumentException:非法参数异常java.lang.IllegalArgumentException: … is not a valid argument
IllegalStateException:非法状态异常java.lang.IllegalStateException: … is not in a valid state
IndexOutOfBoundsException:越界异常java.lang.IndexOutOfBoundsException: Index … out of bounds for length …
OutOfMemoryError:内存溢出错误java.lang.OutOfMemoryError: Failed to allocate a … byte allocation with … free bytes and …MB until OOM, target footprint …MB, growth limit …MB
NoSuchMethodError:方法不存在错误java.lang.NoSuchMethodError: … method not found
ArithmeticException:算术异常java.lang.ArithmeticException: … / by zero
SecurityException:安全异常java.lang.SecurityException: … not allowed to perform operation
NetworkOnMainThreadException:主线程网络异常android.os.NetworkOnMainThreadException
InflateException:布局解析异常android.view.InflateException: Binary XML file line #…: Error inflating class …
ResourcesNotFoundException:资源未找到异常android.content.res.Resources$NotFoundException: Resource ID #… not found
SQLiteDatabaseLockedException:SQLite数据库锁定异常android.database.sqlite.SQLiteDatabaseLockedException: database is locked
SQLiteException:SQLite数据库异常android.database.sqlite.SQLiteException: … error code …
StaleDataException:数据过期异常android.database.StaleDataException: Attempted to access a cursor after it has been closed.
VerificationError:验证错误java.lang.VerifyError: … access … from incompatible class …
AssertionError:断言错误java.lang.AssertionError: … assertion failed
NoSuchAlgorithmException:加密算法不存在异常java.security.NoSuchAlgorithmException: … algorithm not available
SocketException:Socket异常java.net.SocketException: … failed: ECONNREFUSED (Connection refused)
SSLException:SSL异常javax.net.ssl.SSLException: … SSL handshake aborted
FileNotFoundException:文件未找到异常java.io.FileNotFoundException: … (No such file or directory)
IOException:IO异常java.io.IOException: … (Connection timed out)
ParseException:解析异常java.text.ParseException: Unparseable date: “…”
JSONException:JSON解析异常org.json.JSONException: … at character …
SAXException:SAX解析异常org.xml.sax.SAXException: … at line …
NumberFormatException:数字格式化异常java.lang.NumberFormatException: For input string: “…”
IllegalStateException:线程状态异常java.lang.IllegalStateException: Cannot execute task: the task is already running.
ConcurrentModificationException:并发修改异常java.util.ConcurrentModificationException: … (java.util.ConcurrentModificationException)
UnsupportedOperationException:不支持的操作异常java.lang.UnsupportedOperationException: … not supported
InterruptedException:线程中断异常java.lang.InterruptedException: sleep interrupted
RuntimePermission:权限异常java.lang.RuntimePermission: … permission required
AuthenticationException:认证异常org.apache.http.client.ClientProtocolException: … (authentication challenge)
FileNotFoundException:未找到文件异常java.io.FileNotFoundException: … File not found.
UnsupportedOperationException:不支持的操作异常java.lang.UnsupportedOperationException: … not supported
EOFException:文件结尾异常java.io.EOFException: … end of file reached
ConnectException:连接异常java.net.ConnectException: … Connection refused
SocketTimeoutException:Socket超时异常java.net.SocketTimeoutException: … Read timed out
JNIException:Java本机接口异常java.lang.reflect.InvocationTargetException: JNI Exception: …
NoSuchProviderException:提供程序不存在异常java.security.NoSuchProviderException: Provider … not found
Surface.OutOfResourcesException:Surface资源耗尽异常android.view.Surface$OutOfResourcesException: … (Surface with no valid EGLContext)
WindowManager.BadTokenException:无效的Window Token异常android.view.WindowManager$BadTokenException: … is not valid; is your activity running?
TimeoutException:超时异常java.util.concurrent.TimeoutException: … timeout
SSLHandshakeException:SSL握手异常javax.net.ssl.SSLHandshakeException: … SSL handshake aborted
SAXParseException:SAX解析异常org.xml.sax.SAXParseException: … at line …
IllegalStateException:未知的Bundle标记异常java.lang.IllegalStateException: Unknown Bundle Marker at position …: …
IllegalArgumentException:传递了错误的方位坐标java.lang.IllegalArgumentException: Point (?, ?) must be in the range ? <= x <= ? and ? <= y <= ?
SQLiteReadOnlyDatabaseException:SQLite只读数据库异常android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write to a readonly database
SQLException:SQL异常java.sql.SQLException: … SQL exception
ZipException:压缩文件异常java.util.zip.ZipException: … Not in GZIP format
DifferentKeyException:与此密钥不相关的密钥异常java.security.spec.InvalidKeySpecException: Inappropriate key specification: Different key pair generated for given keyUsageInfo

六、参考链接

50个Android开发中常见的异常崩溃情况

Android崩溃日志获取方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135755.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++day3

1> 自行封装一个栈的类&#xff0c;包含私有成员属性&#xff1a;栈的数组、记录栈顶的变量 成员函数完成&#xff1a;构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小 头文件 #ifndef STACK_H #define STACK_H #include &…

二叉树的概念及存储结构

目录 1.树的概念 1.1树的相关概念 1.2树的表示与应用 2.二叉树的概念及结构 2.1二叉树的概念 2.1.1特殊的二叉树 2.2.2二叉树的性质 2.2二叉树的结构 2.2.1顺序存储 2.2.2链式存储 这是一篇纯理论的博客,会对数据结构中的二叉树进行详细的讲解,让你对树的能有个清晰的…

vue Router路由

编程式导航 | Vue Router 看官方文档 vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;让用 Vue.js 构建单页应用变得轻而易举。功能包括&#xff1a; 嵌套路由映射动态路由选择模块化、基于组件的路由配置路由参数、查询、通配符展示由 Vue.js 的过…

线性代数的本质(三)——线性方程组

文章目录 线性方程组高斯消元法初等行变换线性方程组的解向量方程齐次线性方程组的解非齐次线性方程组的解 线性方程组 高斯消元法 客观世界最简单的数量关系是均匀变化的关系。在均匀变化问题中&#xff0c;列出的方程组是一次方程组&#xff0c;我们称之为线性方程组(Linea…

【去除若依首页】有些小项目不需要首页,去除方法

第一步 // // // // // // // // // // // // // // // // // // 修改登录页 Login.vue 中 大概144行 &#xff0c;注释掉原有跳转。替换为自己的跳转路径 // // // // // // // // // // // // // this.$router.push({ path: this.redirect || …

Observability:使用 OpenTelemetry 手动检测 Go 应用程序

作者&#xff1a;Luca Wintergerst DevOps 和 SRE 团队正在改变软件开发的流程。 DevOps 工程师专注于高效的软件应用程序和服务交付&#xff0c;而 SRE 团队是确保可靠性、可扩展性和性能的关键。 这些团队必须依赖全栈可观察性解决方案&#xff0c;使他们能够管理和监控系统&…

系统IO和标准IO

一.系统IO 系统 I/O&#xff08;Input/Output&#xff09;是计算机操作系统提供给应用程序的一种输入和输出方式。它通过系统调用&#xff08;系统内核提供的函数&#xff09;来实现数据的读取和写入。系统 I/O 可以用于与文件、设备&#xff08;例如磁盘驱动器、网络接口、串…

使用vite创建vue3项目及项目的配置 | 环境准备 ESLint配置 prettier配置 husky配置 项目继承

文章目录 使用vite创建vue3项目及项目的配置1.环境准备2.项目配置ESLint校验代码工具配置 - js代码检测工具1.安装ESLint到开发环境 devDependencies2.生成配置文件:.eslint.cjs**3.安装vue3环境代码校验插件**4. 修改.eslintrc.cjs配置文件5.生成ESLint忽略文件6.在package.js…

[BJDCTF2020]Mark loves cat foreach导致变量覆盖

这里我们着重了解一下变量覆盖 首先我们要知道函数是什么 foreach foreach (iterable_expression as $value)statement foreach (iterable_expression as $key > $value)statement第一种格式遍历给定的 iterable_expression 迭代器。每次循环中&#xff0c;当前单元的值被…

使用 Nginx 实现企业微信域名配置中的校验文件跳转

背景 在企业微信中配置业务域名时&#xff0c;通常需要在该域名的根路径下放置一个校验文件&#xff0c;以验证域名的所有权。然而&#xff0c;如果该域名是第三方的&#xff0c;你可能无法直接在根路径下放置文件。在这种情况下&#xff0c;你可以使用 Nginx 来实现校验文件的…

OPC DCOM快速配置

目录 1 老系统配置 1.1 移除Windows 安全 1.2 建立相互能识别的用户账号 1.3 配置系统宽泛的DCOM设置 1.4 配置Server的特殊DCOM设置 1.5 恢复Windows安全 1 老系统配置 远程OPC访问必须在服务器和客户端两端配置DCOM。本文讲述如何正确配置 DCOM 的步骤并保证安全。 新…

Git(6)——GitHub

目录 一、简介 二、概要 三、注册 ​四、创建仓库 五、推送本地代码 六、拉取远端代码 一、简介 在Git&#xff08;5&#xff09;中&#xff0c;我们已经对Git分支的概念和用法有了一定了解&#xff0c;对于在本地进行代码版本管理&#xff0c;其实当前所学的东西基本已经…

CocosCreator3.8研究笔记(十八)CocosCreator UI组件(二)

前面的文章已经介绍了Canvas 组件、UITransform 组件、Widget 组件 。 想了解的朋友&#xff0c;请查看 CocosCreator3.8研究笔记&#xff08;十七&#xff09;CocosCreator UI组件&#xff08;一&#xff09;。 今天我们主要介绍CocosCreator 常用容器组件&#xff1a;Layout …

【深度学习实验】线性模型(四):使用Pytorch实现线性模型:使用随机梯度下降优化器训练模型

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 线性模型linear_model 2. 损失函数loss_function 3. 定义数据 4. 初始化权重和偏置 5. 模型训练 6. 迭代 7. 实验结果 8. 完整代码 一、实验介绍 使用随机梯度下降优化…

解决Permission is not allowed后基于Ubuntu23.04安装配置docker与docker-compose

参考&#xff1a;Docker官网-Install Docker Engine on Ubuntu 一、 Install using the Apt repository 1.1 Set up Docker’s Apt repository 1.1.1 Add Docker’s official GPG key # Add Dockers official GPG key: sudo apt-get updatesudo apt-get install ca-certifi…

Java文字描边效果实现

效果&#xff1a; FontUtil工具类的完整代码如下&#xff1a; 其中实现描边效果的函数为&#xff1a;generateAdaptiveStrokeFontImage() package com.ncarzone.data.contentcenter.biz.img.util;import org.springframework.core.io.ClassPathResource; import org.springfr…

ApplicationContext版本的快速入门

ApplicationContext快速入门 ApplicationContext称为Spring容器&#xff0c;内部封装了BeanFactory&#xff0c;比BeanFactory功能更加丰富和强大&#xff0c;使用ApplicationContext进行开发时&#xff0c;xml配置文件的名称习惯写成applicationContext.xml。 BeanFactory和…

Python语言学习实战-内置函数sorted()的使用(附源码和实现效果)

实现功能 sorted()函数是Python的内置函数之一&#xff0c;用于对可迭代对象进行排序操作。它可以对列表、元组、字符串等可迭代对象进行排序&#xff0c;并返回一个新的已排序的列表。 sorted()函数的语法如下&#xff1a; sorted(iterable, keyNone, reverseFalse)其中&am…

6-2 pytorch中训练模型的3种方法

Pytorch通常需要用户编写自定义训练循环&#xff0c;训练循环的代码风格因人而异。&#xff08;养成自己的习惯&#xff09; 有3类典型的训练循环代码风格&#xff1a;脚本形式训练循环&#xff0c;函数形式训练循环&#xff0c;类形式训练循环。 下面以minist数据集的多分类模…

ROS 入门

目录 简介 ROS诞生背景 ROS的设计目标 ROS与ROS2 安装ROS 1.配置ubuntu的软件和更新 2.设置安装源 3.设置key 4.安装 5.配置环境变量 安装可能出现的问题 安装构建依赖 卸载 ROS架构 1.设计者 2.维护者 3. 立足系统架构: ROS 可以划分为三层 ROS通信机制 话…