Version
Media3 1.8.0
More version details
No response
Devices that reproduce the issue
Vantiva TV Box
Devices that do not reproduce the issue
?
Reproducible in the demo app?
No
Reproduction steps
We're seeing those crash in production on our Crashlytics reports. We have 3 different stack possible:
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.DisplayInfo.getRefreshRate(DisplayInfo.java:560)
at android.view.Display.getRefreshRate(Display.java:972)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper.updateDefaultDisplayRefreshRateParams(VideoFrameReleaseHelper.java:389)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper.access$000(VideoFrameReleaseHelper.java:50)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper$DisplayHelper.onDisplayChanged(VideoFrameReleaseHelper.java:463)
at android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate.handleMessage(DisplayManagerGlobal.java:971)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.Display.getMode(Display.java:998)
at android.graphics.HardwareRenderer$ProcessInitializer.initDisplayInfo(HardwareRenderer.java:1220)
at android.graphics.HardwareRenderer$ProcessInitializer.initUsingContext(HardwareRenderer.java:1183)
at android.graphics.HardwareRenderer.(HardwareRenderer.java:168)
at android.view.ThreadedRenderer.(ThreadedRenderer.java:264)
at android.view.ThreadedRenderer.create(ThreadedRenderer.java:232)
at android.view.ViewRootImpl.enableHardwareAcceleration(ViewRootImpl.java:1442)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1055)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:399)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:133)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4843)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.DisplayInfo.getRefreshRate(DisplayInfo.java:560)
at android.view.DisplayInfo.equals(DisplayInfo.java:380)
at android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate.handleMessage(DisplayManagerGlobal.java:969)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
Expected result
The application crashes
Actual result
The application should not crash even if there is a misconfiguration somewhere or we should be able to catch it.
Media
Bug Report
Version
Media3 1.8.0
More version details
No response
Devices that reproduce the issue
Vantiva TV Box
Devices that do not reproduce the issue
?
Reproducible in the demo app?
No
Reproduction steps
We're seeing those crash in production on our Crashlytics reports. We have 3 different stack possible:
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.DisplayInfo.getRefreshRate(DisplayInfo.java:560)
at android.view.Display.getRefreshRate(Display.java:972)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper.updateDefaultDisplayRefreshRateParams(VideoFrameReleaseHelper.java:389)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper.access$000(VideoFrameReleaseHelper.java:50)
at androidx.media3.exoplayer.video.VideoFrameReleaseHelper$DisplayHelper.onDisplayChanged(VideoFrameReleaseHelper.java:463)
at android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate.handleMessage(DisplayManagerGlobal.java:971)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.os.HandlerThread.run(HandlerThread.java:67)
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.Display.getMode(Display.java:998)
at android.graphics.HardwareRenderer$ProcessInitializer.initDisplayInfo(HardwareRenderer.java:1220)
at android.graphics.HardwareRenderer$ProcessInitializer.initUsingContext(HardwareRenderer.java:1183)
at android.graphics.HardwareRenderer.(HardwareRenderer.java:168)
at android.view.ThreadedRenderer.(ThreadedRenderer.java:264)
at android.view.ThreadedRenderer.create(ThreadedRenderer.java:232)
at android.view.ViewRootImpl.enableHardwareAcceleration(ViewRootImpl.java:1442)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1055)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:399)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:133)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4843)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
Fatal Exception: java.lang.IllegalStateException: Unable to locate mode -1
at android.view.DisplayInfo.findMode(DisplayInfo.java:577)
at android.view.DisplayInfo.getMode(DisplayInfo.java:564)
at android.view.DisplayInfo.getRefreshRate(DisplayInfo.java:560)
at android.view.DisplayInfo.equals(DisplayInfo.java:380)
at android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate.handleMessage(DisplayManagerGlobal.java:969)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
Expected result
The application crashes
Actual result
The application should not crash even if there is a misconfiguration somewhere or we should be able to catch it.
Media
Bug Report
adb bugreportto android-media-github@google.com after filing this issue.