Files
MoGoEagleEye/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt

60 lines
2.5 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.mogo.launcher.lancet
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import androidx.annotation.*
import com.knightboost.lancet.api.Origin
import com.knightboost.lancet.api.Scope.ALL
import com.knightboost.lancet.api.Scope.LEAF
import com.knightboost.lancet.api.annotations.*
@Keep
@Weaver
@Group("crash_fix")
class CrashFix {
companion object {
/**
* 修正Android8.0及之后后台启动Service引起的崩溃
* java.lang.IllegalStateException: Not allowed to start service Intent {
* act=com.zhidao.cosupload.service.UPLOAD_ACTION cmp=com.mogo.launcher.f/com.zhidao.cosupload.service.UploadService }: app is in background uid UidRecord{6443b7b u0a404 LAST bg:+1m15s362ms idle change:idle procs:1 seq(0,0,0)}
*/
@JvmStatic
@TargetClass("android.content.Context", scope = ALL)
@TargetMethod(methodName = "startService")
@ReplaceInvoke
fun fixStartServiceCrash(context: Context, intent: Intent): ComponentName? {
return try {
return context.startService(intent)
} catch (t: Throwable) {
t.printStackTrace()
null
}
}
}
/**
* https://console.volcengine.com/apmplus/app/crash/detail/java/bb387ccd9c1a3c6ad2ede4e6f501a5e7?aid=302368&date=%7B%22granularity%22%3A%221h%22%2C%22duration%22%3A%22recently%22%2C%22range%22%3A%221w%22%7D&filters=%7B%22type%22%3A%22and%22%2C%22sub_conditions%22%3A%5B%7B%22dimension%22%3A%22os%22%2C%22op%22%3A%22in%22%2C%22type%22%3A%22expression%22%2C%22values%22%3A%5B%22Android%22%5D%7D%5D%7D&org_id=2100068151&os=Android&page_number=6&status=%5B%22pending%22%2C%22processing%22%2C%22solved%22%2C%22reopen%22%5D
* java.lang.IllegalArgumentException: Invalid audio buffer size.
* at android.media.AudioTrack.audioBuffSizeCheck(AudioTrack.java:1857)
at android.media.AudioTrack.<init>(AudioTrack.java:812)
at android.media.AudioTrack.<init>(AudioTrack.java:754)
at android.media.AudioTrack.<init>(AudioTrack.java:708)
at android.media.AudioTrack.<init>(AudioTrack.java:649)
at com.aispeech.lite.tts.a.a(SourceFile:70)
*/
@Insert
@TargetClass("com.aispeech.lite.tts.a")
@TargetMethod(methodName = "a")
fun fixAiSpeechCrash(context: Context, arg1: Int, arg2: Int) {
try {
Origin.callVoid()
} catch (t: Throwable) {
t.printStackTrace()
}
}
}