- expo-file-system jako jawna zaleznosc: zagniezdzony pod expo nie byl autolinkowany, ExpoAsset.downloadAsync padal na AppDirectories not found (Sentry 143555436) - app/build.gradle: create*UpdatesResources zawsze generowane; zadanie mialo same napisy jako wejscia i od 2026-05-31 osadzalo stary app.manifest (23 assety, bez fontu ikon) - patch-package + patches/expo-video+2.0.6.patch: cleanup() iteruje po kopii mediaSessions (ConcurrentModificationException w onTaskRemoved, Sentry 147164135) - versionCode 15 / 0.4.1, runtime bez zmian (1.4), /version 0.4.1, linki na stronie Test: czysta instalacja offline na emulatorze, 0.4.0 = 0 glifow ikon + blad w Sentry, 0.4.1 = 11 glifow i brak bledu. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 lines
1.1 KiB
Diff
21 lines
1.1 KiB
Diff
diff --git a/node_modules/expo-video/android/src/main/java/expo/modules/video/playbackService/ExpoVideoPlaybackService.kt b/node_modules/expo-video/android/src/main/java/expo/modules/video/playbackService/ExpoVideoPlaybackService.kt
|
|
index cd798cf..34923b2 100644
|
|
--- a/node_modules/expo-video/android/src/main/java/expo/modules/video/playbackService/ExpoVideoPlaybackService.kt
|
|
+++ b/node_modules/expo-video/android/src/main/java/expo/modules/video/playbackService/ExpoVideoPlaybackService.kt
|
|
@@ -136,10 +136,14 @@ class ExpoVideoPlaybackService : MediaSessionService() {
|
|
|
|
private fun cleanup() {
|
|
hideAllNotifications()
|
|
- mediaSessions.forEach { (_, session) ->
|
|
+ // Kopia przed iteracja: session.release() wola z powrotem unregisterPlayer, ktory
|
|
+ // usuwa wpis z mediaSessions w trakcie forEach -> ConcurrentModificationException
|
|
+ // przy zamykaniu apki z listy ostatnich (Goon, Sentry 147164135, 2026-09-15).
|
|
+ val sessions = mediaSessions.values.toList()
|
|
+ mediaSessions.clear()
|
|
+ sessions.forEach { session ->
|
|
session.release()
|
|
}
|
|
- mediaSessions.clear()
|
|
}
|
|
|
|
private fun hidePlayerNotification(player: ExoPlayer) {
|