Android保存App異常信息到本地
本文實(shí)例為大家分享了Android保存App異常信息到本地的具體代碼,供大家參考,具體內(nèi)容如下
首先添加權(quán)限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代碼
// 調(diào)用該方法造成異常 private void math() { try { int a = 0; int b = 10; int c = b / a; } catch (Exception e) { e.printStackTrace(); // Logcat打印異常 // 保存異常信息 StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw, true)); saveException(this, sw.toString()); } } /** * 保存異常信息到本地 Android/data/包名/files/Documents/exception/yyyyMMdd_app_exception.txt * @param context 上下文 * @param errMsg 異常信息 */ private void saveException(Context context, String errMsg) { if (context == null || TextUtils.isEmpty(errMsg)) return; FileOutputStream fos = null; try { // 創(chuàng)建目錄 String dirPath = context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath() + "/exception/"; File dir = new File(dirPath); if (!dir.exists()) { dir.mkdirs(); } // 根據(jù)當(dāng)天日期來生成文件名 String date = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH).format(new Date()); // 創(chuàng)建文件 File file = new File(dirPath, date + "_app_exception.txt"); if (!file.exists()) { file.createNewFile(); } fos = new FileOutputStream(file, true); fos.write(errMsg.getBytes()); fos.write("\n".getBytes()); fos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (Exception e) { e.printStackTrace(); } } } }
效果如圖
可以考慮將當(dāng)前時(shí)間寫進(jìn)文件,更方便排查問題
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
flutter實(shí)現(xiàn)一個(gè)列表下拉抽屜的示例代碼
本文主要介紹了flutter實(shí)現(xiàn)一個(gè)列表下拉抽屜的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Flutter permission_handler 權(quán)限插件的使用詳解
這篇文章主要介紹了Flutter permission_handler 權(quán)限插件的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android Vibrator調(diào)節(jié)震動(dòng)代碼實(shí)例
這篇文章主要介紹了Android Vibrator調(diào)節(jié)震動(dòng)代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-05-05Android通過手機(jī)拍照或從本地相冊(cè)選取圖片設(shè)置頭像
微信、QQ、微博等社交類APP如何更換自己的頭像,這篇文章主要介紹了Android通過手機(jī)拍照或從本地相冊(cè)選取圖片設(shè)置頭像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android 下載文件通知欄顯示進(jìn)度條功能的實(shí)例代碼
這篇文章主要介紹了Android 下載文件通知欄顯示進(jìn)度條功能的實(shí)例代碼,通過使用AsyncTask異步任務(wù)實(shí)現(xiàn),調(diào)用publishProgress()方法刷新進(jìn)度來實(shí)現(xiàn),具體代碼大家參考下本文2018-04-04Android實(shí)現(xiàn)類似ios滑動(dòng)按鈕
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)類似ios滑動(dòng)按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08Android XRecyclerView實(shí)現(xiàn)多條目加載
這篇文章主要為大家詳細(xì)介紹了Android XRecyclerView實(shí)現(xiàn)多條目加載效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Kotlin擴(kuò)展函數(shù)及實(shí)現(xiàn)機(jī)制的深入探索
擴(kuò)展函數(shù)與擴(kuò)展屬性的神奇之處在于,可以在不修改原來類的條件下,使用函數(shù)和屬性,表現(xiàn)得就像是屬于這個(gè)類的一樣。下面這篇文章主要給大家介紹了關(guān)于Kotlin擴(kuò)展函數(shù)及實(shí)現(xiàn)機(jī)制的相關(guān)資料,需要的朋友可以參考下2018-06-06Android定制RadioButton樣式三種實(shí)現(xiàn)方法
三種方法實(shí)現(xiàn)Android定制RadioButton樣式:使用XML文件進(jìn)行定義/在JAVA代碼中定義等等,感興趣的朋友可以參考下,希望可以幫助到你2013-02-02