diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d6557f7694..a692eaf774 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -19,6 +19,10 @@ * Keep subtitle language features embedded (e.g. rubies & tate-chu-yoko) in `Cue.text` even when `SubtitleView#setApplyEmbeddedStyles()` is false. +* UI + * Fix `NullPointerException` in `StyledPlayerView` that could occur after + calling `StyledPlayerView.setPlayer(null)` + ([#8985](https://github.com/google/ExoPlayer/issues/8985)). ### 2.14.0 (2021-05-13) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java index 3f0872b7a4..e626a1c54f 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java @@ -570,6 +570,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider { } @Nullable Player oldPlayer = this.player; if (oldPlayer != null) { + oldPlayer.removeListener(componentListener); if (surfaceView instanceof TextureView) { oldPlayer.clearVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) {