首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

真机调试安卓捕获应用的运行时异常并保存代码

我们在编写安卓开发的代码时,在真机调试的时候,如果遇到错误,不好调试,我们可以辨析代码,实现Android安卓开发过程中捕获应用的运行时异常并保存,如下:

1.在出错的页面的onCreate()加入如下代码:

// 捕获应用的运行时异常

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {// 给主线程设置一个处理运行时异常的handler

@Override

public void uncaughtException(Thread thread, final Throwable ex) {

StringWriter sw = new StringWriter();

PrintWriter pw = new PrintWriter(sw);

ex.printStackTrace(pw);

StringBuilder sb = new StringBuilder();

sb.append("Version code is ");

sb.append(Build.VERSION.SDK_INT + "\n");// 设备的Android版本号

sb.append("Model is ");

sb.append(Build.MODEL + "\n");// 设备型号

sb.append(sw.toString());

try {

saveToSDCard("myException.txt", sb.toString());

} catch (IOException e) {

e.printStackTrace();

}

System.exit(0);

}

});

还要加入如下代码,用于保存异常文本。

public void saveToSDCard(String fileName, String content)

throws IOException {

// 考虑不同版本的sdCard目录不同,采用系统提供的API获取SD卡的目录

File file = new File(Environment.getExternalStorageDirectory(),

fileName);

if (!file.isDirectory()) {

file.createNewFile();

}

FileOutputStream fileOutputStream = new FileOutputStream(file);

fileOutputStream.write(content.getBytes());

fileOutputStream.close();

}

2.在配置文件声明存储卡的读取权限。

在Android的manifest.xml文档中加入下面的声名:

就可以在手机的SD卡根目录查找myException.txt,里面显示的就是异常的内容

在代码的编写工作当中,我们会遇到很多有关错误处理的内容。

这个时候,你用的最多的应该是try-catch-finally,这样的句式。系统提供的这个句式极大方便我们的处理。我们可以抛出异常、抓取异常、显示异常到前端。但工作中我们大部分时候需要分工合作,因此规范的写法显得尤为重要,不然,后端很多异常处理不规范,将会导致前端人员抓瞎!

后端抛出异常、前端抓取异常,应该是我们基本的规范。

3.运行APK,出错后,用 手机的文件浏览器,查看存储器的根目录下的myException.txt。里面记载了出错的原因,根据情况解决。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190814A0IS3F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券