pluto icon indicating copy to clipboard operation
pluto copied to clipboard

On open "Crashes & ANRs" i get a crash SQLiteBlobTooBigException

Open NikCapko opened this issue 1 year ago • 1 comments

android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=1, totalRows=2 at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method) at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1001) at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:838) at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62) at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:163) at android.database.sqlite.SQLiteCursor.onMove(SQLiteCursor.java:131) at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:248) at android.database.AbstractCursor.moveToNext(AbstractCursor.java:286) at com.pluto.plugins.exceptions.internal.persistence.ExceptionDao_Impl$8.call(ExceptionDao_Impl.java:214) at com.pluto.plugins.exceptions.internal.persistence.ExceptionDao_Impl$8.call(ExceptionDao_Impl.java:204) at androidx.room.CoroutinesRoom$Companion$execute$4$job$1.invokeSuspend(CoroutinesRoom.kt:87) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@b402047, Dispatchers.IO]

NikCapko avatar Apr 15 '24 10:04 NikCapko

Maybe set limit in 100 StackTraceElement on save crash info can fix it.

In DataModel.kt

internal fun Array<StackTraceElement>.asStringArray(): ArrayList<String> {
    val array = arrayListOf<String>()
    forEachIndexed { index, element ->
        if (index <= 100) {
            if (element.isNativeMethod) {
                array.add("${element.className}.${element.methodName}(Native Method)")
            } else {
                array.add("${element.className}.${element.methodName}(${element.fileName}:${element.lineNumber})")
            }
        }
    }
    return array
}

NikCapko avatar Apr 15 '24 12:04 NikCapko