您的位置:首页 > 新闻 > 会展 > Android app Java层异常捕获方案

Android app Java层异常捕获方案

2024/9/13 2:12:06 来源:https://blog.csdn.net/adayabetter/article/details/139962499  浏览:    关键词:Android app Java层异常捕获方案

背景: 在Android app运行中,有时一些无关紧要的异常出现时希望App 不崩溃,能继续让用户操作,可以有效提升用户体验和增加业务价值。

在这里插入图片描述

在这里插入图片描述
新流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
哪些场景需要Catch

这里是引用

Crash Config配置信息:
在这里插入图片描述

支持从网络上获取Crash配置表,动态防护,避免crash。

使用: 在Application onCreate中调用:

CrashPortrayHelper.INSTANCE.init(this);

实现原理—源代码:

CrashPortray.kt

package com.mcd.library.crashProtectimport com.google.gson.annotations.SerializedName
import java.io.Serializabledata class CrashPortray(@SerializedName("class_name")val className: String = "",val message: String = "",val stack: List<String> = emptyList(),@SerializedName("app_version")val appVersion: List<String> = emptyList(),@SerializedName("os_version")val osVersion: List<Int> = emptyList(),val model: List<String> = emptyList(),val type: String = "all",@SerializedName("clear_cache")val clearCache: Int = 0,@SerializedName("finish_page")val finishPage: Int = 0,val toast: String = ""
) : Serializable {fun valid(): Boolean {return className.isNotEmpty() || message.isNotEmpty() || stack.isNotEmpty()}
}

CrashPortrayHelper.kt

package com.mcd.library.crashProtectimport android.app.Application
import android.content.Context
import android.os.Build
import com.mcd.library.AppConfigLib
import com.mcd.library.common.McdLifecycleCallback
import com.mcd.library.utils.CacheUtil
import com.mcd.library.utils.DialogUtil
import java.io.File
import java.lang.reflect.InvocationTargetExceptionobject CrashPortrayHelper {private var crashPortrayConfig: List<CrashPortray>? = nullprivate lateinit var application: Applicationprivate lateinit var actionImpl: IAppprivate const val crashProtectClosed: Boolean = false // 是否关闭该功能fun init(application: Application) {if (AppConfigLib.isDebugMode() || crashProtectClosed) { // debug模式下不进行初始化return}CrashPortrayHelper.application = applicationcrashPortrayConfig = getCrashConfig()actionImpl 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com