android - add crash handler

This commit is contained in:
Emmanuel Hansen 2023-10-27 07:54:04 +00:00
parent b01feaa96b
commit ab06f7d92b
4 changed files with 31 additions and 4 deletions

View File

@ -0,0 +1,16 @@
package org.ryujinx.android
import android.os.Bundle
import android.os.PersistableBundle
import androidx.activity.ComponentActivity
abstract class BaseActivity : ComponentActivity() {
companion object{
val crashHandler = CrashHandler()
}
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
Thread.setDefaultUncaughtExceptionHandler(crashHandler)
super.onCreate(savedInstanceState, persistentState)
}
}

View File

@ -0,0 +1,13 @@
package org.ryujinx.android
import java.io.File
import java.lang.Thread.UncaughtExceptionHandler
class CrashHandler : UncaughtExceptionHandler {
var crashLog : String = ""
override fun uncaughtException(t: Thread, e: Throwable) {
crashLog += e.toString() + "\n"
File(MainActivity.AppPath + "${File.separator}crash.log").writeText(crashLog)
}
}

View File

@ -6,7 +6,6 @@ import android.content.pm.ActivityInfo
import android.os.Bundle
import android.view.KeyEvent
import android.view.MotionEvent
import androidx.activity.ComponentActivity
import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Arrangement
@ -51,7 +50,7 @@ import org.ryujinx.android.viewmodels.QuickSettings
import kotlin.math.abs
import kotlin.math.roundToInt
class GameActivity : ComponentActivity() {
class GameActivity : BaseActivity() {
private var physicalControllerManager: PhysicalControllerManager =
PhysicalControllerManager(this)

View File

@ -4,7 +4,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.view.WindowManager
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
@ -17,7 +16,7 @@ import org.ryujinx.android.viewmodels.MainViewModel
import org.ryujinx.android.views.MainView
class MainActivity : ComponentActivity() {
class MainActivity : BaseActivity() {
private var _isInit: Boolean = false
var storageHelper: SimpleStorageHelper? = null
companion object {