From bf464b257d2ad89b78bace428a8ada6466d76911 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sun, 15 Mar 2026 11:38:07 +0100 Subject: [PATCH] fix: log full exception chain on ExoPlayer errors --- .../com/edde746/plezy/exoplayer/ExoPlayerCore.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt index 973bbaf8..8925f427 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerCore.kt @@ -660,7 +660,16 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener { } override fun onPlayerError(error: PlaybackException) { - emitLog("error", "player", "Error code=${error.errorCode}: ${error.message}, cause=${error.cause?.javaClass?.simpleName}") + // Log full exception chain unminified — R8 mangles simpleName but not toString/message + val causeChain = buildString { + var t: Throwable? = error.cause + while (t != null) { + if (isNotEmpty()) append(" → ") + append("${t.javaClass.name}: ${t.message}") + t = t.cause + } + } + emitLog("error", "player", "Error code=${error.errorCode}: ${error.message}, cause=${causeChain.ifEmpty { "none" }}") stopFrameWatchdog() cancelDecoderHangCheck() emitSeekable(false, force = true)