android异常捕获,上线前的操作

学习笔记之Android利用UncaughtExceptionHandler捕获全局异常 一、概述 现如今,Android手机越发的普及,手机的品牌与型号五花八门、Android版本的不同,在开发过程中运行良好的app到了发布上线后安装到某款手机上说不定就出现异常崩溃的现象,开发者不可能在所有的设备逐个调试,所以在apk发布上线后,如果出现了崩溃现象,应及时捕获该设备导致崩溃的日志信息,这对于版本维护bug修复帮助极大,那么如何在app出现crash的情况下捕获设备的参数和较详细的异 阅读详情
  • 自定义一个application
  • 然后再清单文件中的 application 标签下添加name = MyApplication
public class MyApplication extends Application {
    //注意必须在清单文件中application的标签name 写成我们自定义的名字!!!否则下面操作无效...
    @Override
    public void onCreate() {
        super.onCreate();
        //捕获异常方法
        Thread.currentThread().setUncaughtExceptionHandler(new MyUncaughtException());
    }

    //异常捕获
    private class MyUncaughtException implements Thread.UncaughtExceptionHandler{

        @Override
        public void uncaughtException(Thread thread, Throwable ex) {
            try {

                ex.printStackTrace(new PrintStream(new File(getFilesDir() , "log.txt")));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            //当有异常的时候自己吧自己杀死 闪退!
            Process.killProcess(Process.myPid());
        }
    }
}
  • 注意清单文件!!!

    <application
        android:name=".MyApplication"//这个一定要添加!!!!
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
android APP上线前,应该准备的东西 人家常说,失败的经历的经历总是惊人的相似,而成功的经历却各有各的不同,我们能做到的就是尽量避免前人已经犯过的错误,从而提高成功的几率。 这个是我获得的最重要的经验和教训,在这里记录一下,同时告诫一下大家要注意的,避免犯和我一样的错误。 这里从一个Android开发者的角度开始述说 一、要有欢迎界面,和新版本介绍界面。最好每个版本升级的时候都有不一样的图片作为介绍,这样可以 阅读详情

相关推荐

android——异常捕获崩溃后重新启动App

重启app这是一种解决方式,还有另外一种方式可以集成三方平台用于捕获异常,例如:Bugly。最后,异常每个人都会遇到,希望这篇文章能帮助到大家。

wy313622821的博客 2143

Android | Android的异常捕获

一个应用不可避免的会有bug。当一个bug的类型是未捕获异常时,应用就会崩溃。如果应用还在开发阶段,那么情况好一些。因为开发人员可以根据Android Studio打印的崩溃日志来定位问题,并解决问题。如果应用已经上线了,那么开发人员是无法获取到具体的崩溃信息的,也就无法在应用的下一次更新中修复问题。此时,Android应用的异常捕获就显得必不可少了。通常,每个上线的应用都会集成自家的或者第三方的异常上报平台。

cyc的专栏 3809

国内合规开通ChatGPT Plus实操指南:银行卡绑卡与支付全解析

ChatGPT Plus 是 OpenAI 官方推出的高级订阅服务,基于 GPT-4o 多模态大模型提供语音交互、图像理解与长上下文处理能力。其核心使用前提在于完成合规的国际支付绑定,而非网络接入方式。技术原理上,OpenAI 采用 Stripe 支付网关进行风控校验,重点匹配银行跨境权限、卡片类型(仅支持 Visa/Mastercard/Amex 信用卡)、BIN 号段及地理位置一致性。该机制决定了95%的绑卡失败源于银行端配置缺失或卡片不兼容,而非网络问题。实际应用中,PayPal 作为中间支付层可显著

chuannaoxuan4674的博客 1973

Android中全局异常捕获以及动态logcat打印。方便上线项目分析

很多时候我们会出现出现了一个问题,但是我们自己并没有日志的情况。这个时候怎么办呢。其实在我们的软件中集成一些日志上报的功能有时候是有需要的。那么问题来了:我们该在自己代码中动态捕获自己应用的日志,以及错误信息呢。其实android 给出了两种: 1.运行时异常捕获: 这个很容易明白,就是在程序正常运行中,如果程序出现了全局的异常,那么我们就捕获异常,并且把异常信息给收集处理。比如我们可以通过指定

向大牛前行 5694

【机械视觉】Halcon—【二、Halcon算子全面介绍(超详细版)】

Halcon 的算子(operators)按照功能被系统性地划分为多个类别,官方文档中目前(Halcon 22.11 版本)共有 19 个主分类,每个主分类下还有若干子分类。 本人在此对这19个分类的常用核心算子进行了一系列的总结,且本人在文章最后还总结了一些案例经验。 注意: ​​​​​​​跨分类调用:某些算子可能在多个分类中,但官方文档中会明确其主分类。 例如: read_image(文件操作)常被其他分类(如图像处理)的示例调用,但其核心功能是文件读取。

qq_3517289697的博客 3917

LCD驱动芯片——BL55072A驱动程序

初始化子程序: START 0x7C; I2C子地址 0xEA;ICSET,软件复位芯片 0xC0;MODSET,关显示 0xF0;BLKCTL,关闪烁 0xA3;DISCTL,80Hz Line inversion,High Power mode 0xE8;ICSET,清复位bit1 STOP 显示刷新子程序: START 0x7C;I2C子地址 0xF0;BLKCTL,关闪烁 0xA3;DISCTL,80Hz Line inversion,High Power mode 0xE8或0xEC;ICSE

love421的博客 3175

捕获处理未捕获的异常

在开发中异常是难以避免的,开发过程中我们可以通过Logcat查看异常信息快速定位异常的原因进行处理,但是当app给测试或者上线后遇到一些难以重现的bug时,我们就很难找出问题所在了,所以需要捕获未捕获的异常。java中给我们提供了UncaughtExceptionHandler这个接口,实现这个接口就可以捕获未捕获的异常信息了。 捕获处理未捕获的异常 public class MyUncaught...

残梦 2888

2.数字芯片时序正确的前提—Max-transition

芯片物理设计中最基本的Max-transition检查

weixin_43868998的博客 5426

Android 捕获异常,上报异常日志,捕获奔溃日志,bugly使用实例

方法一: 依赖 implementation 'com.tonystark.android:defense_crash:2.0.0' maven maven { url 'https://dl.bintray.com/xuuhaoo/maven/' } 两个地方都需要加入maven allprojects { 和 buildscript { 资源完成,代码: public class FaceApp extends Application implement...

meixi_android的博客 2487

PADS VX2.4差分对设置避坑指南:常见错误与解决方案

本文深度解析了在PADS VX2.4中进行高速PCB设计时,差分对设置的核心要点与常见陷阱。针对Layout规则设置、Router布线实战中的阻抗控制、线长匹配等关键环节,提供了具体的避坑指南和解决方案,帮助工程师确保信号完整性,提升设计质量。

weixin_29216049的博客 360

K230开发板实战:YOLOv8n模型部署全流程(附常见报错解决方案)

本文详细介绍了在K230开发板上部署YOLOv8n模型的完整流程,包括模型选型、配置文件优化和运行时调优。特别针对常见的'生成部署文件异常'等问题提供了实用解决方案,帮助开发者高效完成嵌入式AI模型的部署与优化。

g8f9d0s1a2的博客 1048

浅析Android APP上线前的准备工作

文章目录前言一、版本设置二、上线模式1.上线模式的说明2.控制调制信息3.AndroidManifest.xml的配置修改4.数据安全5.apk加固总结 前言 本文介绍App上线前必须做的准备工作,包括正确设置版本信息,例如设置App图标、App名称、App版本号;把开发模式切换到上线模式,除了代码的切换外,还需修改AndroidManifest.xml;对关键业务数据进行加密处理,加密算法主要有MD5、RSA、AES、3DES、SM3等。 一、版本设置 开发一个正式App需要定制几类版本信息,包括但

qjyws的博客 2762

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

‍‍android捕获全局异常,并对异常做出处理

在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛的异常排查错误,很方便。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以捕获全局异常,对异常做出处理。 具体的实方法如下: 利用Thread.UncaughtExceptionHandler 获取异常,并对异常做出处理: public class MyUncaughtExceptionHandle

Working harder, getting stronger! 1108

消息平台接入实战:Hermes Agent 实现微信/钉钉日常任务自动化的 4 步配置

揭示 Hermes Agent 接入微信/钉钉时高频失效的根本原因——非 API 调用问题,而是上下文边界缺失;详解通过 soul.md 锁定人格基线、skills/ 目录原子化封装技能、CLAUDE.md 控制记忆节奏、Docker 环境适配四步构建可信赖自动化信任链,并给出身份证号过滤、中文标点

weixin_42520239的博客 165

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android异常捕捉,Android捕获崩溃异常

由于我们写的代码难免会出现一些bug,以及由于测试环境和生产环境差异导致出现的一些异常,在测试过程中没有发现,而在app上线之后会偶然出现的一些bug,以至于app在使用过程中出现ANR,这是个令人蛋疼的现象,app卡死、出现黑屏等,总之当app出现异常时的用户体验不友好,我们开发者需要去捕获这些异常,收集这些异常信息,并且上传到服务器,利于开发人员去解决这些问题,同时,我们还需要给用户一个友好的...

weixin_39553156的博客 697

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android 面试题 异常捕获 四

Override//回调函数,处理异常//在这里将崩溃日志读取出来,然后保存到SD卡,或者直接上传到日志服务器//如果我们也想继续调用系统的默认处理,可以先把系统UncaughtExceptionHandler存下来,然后在这里调用。2. 设置全局监控完成以上2个步骤,我们就可以实现全局的Crash监控了。这里所说的全局,是指针对整个进程生效。

我很好 676

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

关于Android全局异常捕获的实现

当app遇到某些异常,而且没有Try catch的时候,app会出现奔溃,用户体验极差,在开发过程中还好,我们可以解决问题,但如果是app已经上线了,肯定会收到用户的投诉,所以需要优化,做到即使出现异常,app也不会出现闪退,同时我们也可以知道报的是什么异常,可以在下一个版本解决。...

怎么可以吃恐龙呢 2894

Android关于全局异常捕获及发送到服务器

在做项目的过程中,出现异常是在所难免的,Android开发也难逃一劫。 搞过Android开发的朋友都知道,只要程序中出现有异常情况,如果没有对异常进行处理,那么整个应用程序都会出现崩溃的现象。如果是在调试的阶段出现崩溃现象到是没有什么大问题,因为你可以通过控制台打印出异常信息,进而修改代码,避免异常。可是,如果产品已经上线了,用户在使用过程中出现崩溃,这时候你应该怎么办呢?直接找客户看异常信息?

huangxuanheng的专栏 4292

Android捕获全局异常信息并实现上传

在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛出的异常排查错误。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以用UncaughtExceptionHandler捕获全局异常,对异常做出处理。比如我们可以获取到抛出异常的时间、手机的硬件信息、错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug。 示

文忠专栏 1万+

xCrash 捕获ANR异常

ANR异常 android ANR 异常的英文全称是 “Application Not Responding”,中文意思即为应用无响应。 在介绍xCrash捕获ANR异常时,先简单介绍一下ANR异常,以及产生ANR异常的原因,以及ANR常用的处理方式。 ANR异常产生的类型 KeyDispatchTimeout。UI主线程对于输入事件,即Inputdispatch事件超过5S没有处理产生ANR。...

cxmfzu的博客 2246

android上传图片到服务器抛出异常,android 全局异常的捕获,保存本地以及上传服务器...

android在产品上线以后为了能够实时捕获异常,需要写一个异常捕获的类,这个类在你遇到异常的时候会执行uncaughtException这个方法,然后你就可以对异常进行一些操作。我把代码贴上来:package com.example.spanable_textview;import java.io.File;import java.io.FileOutputStream;import java....

weixin_42121905的博客 203

android捕获全局异常,并对异常做出处理

<br /><br />在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛的异常排查错误,很方便。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以捕获全局异常,对异常做出处理。<br />具体的实方法如下:<br />利用Thread.UncaughtExceptionHandler 获取异常,并对异常做出处理:<br />public class MyUncaughtExceptionHandler implements <br />        Threa

5260

android 自定义Thread.UncaughtExceptionHandler捕获异常

由于app在运行时会出现崩溃出现不友好的局面,所以要全局捕获异常,然后记录下崩溃日志 为以后app上线后 方便后期维护升级。代码如下 public class CrashHandler implements Thread.UncaughtExceptionHandler { public static final String TAG = "CrashHandler"; //系统默认的Unc...

安卓兼职framework和app工程师的博客 496

Android捕获异常的实现

为什么要捕获异常在调试阶段,我们可以用手机连着电脑(或者说模拟器),有问题了直接看日志,定位错误代码的位置,但是android机型成千上万,或者测试没有侧到位,当用户使用时出现了异常,直接crash了,第一用户体验不好,第二,用户不会告诉你怎么出现的bug,你也无法在下一个版本中修改这些问题捕获异常,要完成的任务1.任务一、不让用户看到奔溃页面,或者说即使奔溃了,立马重启,让用户感受不到,提升用户的

Android_Study_OK的博客 901

Android捕获全局异常代码实现

做Android开发应用上线的时候,需要测试客户端稳定性,所以我们需要提前发现问题,收集更多异常信息,当Android客户端发生异常的时候,如何捕获异常信息呢,这里我们通过重写一个类,实现Thread.UncaughtExceptionHandler接口,重写uncaughtException方法,在uncaughtException方法中,可以把异常存到本地或上传服务端。 由于异常大多发生...

张明的博客 841
上一篇: android中关于Json的生成
下一篇: android代码混淆操作
buttonXin
博客等级 码龄11年 13粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值