![](/img/trans.png)
[英]Coroutine job completing even after cancellation from external function
[英]Coroutine cancellation with HMS
我正在使我的應用程序適應 HMS。 當我取消啟動的協程,捕獲並嘗試將 CancellationException 記錄到 HMS crashlytics 時,我的應用程序因奇怪的日志而崩潰。 如果我忽略了這個異常並且沒有使用方法AGConnectCrash.getInstance().recordException(throwable)
將其記錄到 crashlytics 中,協程取消不會導致應用程序崩潰。 有人可以幫助解決這個問題嗎?
崩潰日志
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at com.huawei.agconnect.crash.internal.bean.Event$Builder.summary(Unknown Source:5) at com.huawei.agconnect.crash.internal.log.AGCCrashNonFatal.collectInfo(Unknown Source:41) at com.huawei.agconnect.crash.internal.log.AGCCrashNonFatal.logException(Unknown Source:0) at com.huawei.agconnect.crash.internal.log.AGCCrashCore$4.run(Unknown Source:6) at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:784)
一些代碼示例
private fun loadData() {
job?.cancel()
job = viewModelScope.launch {
try {
data.value = someApiCall()
} catch (e: Exception) {
Logger.log(e)
}
}
}
在哪里
object Logger {
fun log(e: Throwable?) {
if (e != null) {
AGConnectCrash.getInstance().recordException(e)
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.