diff --git a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java index 01fcdb0711..2ce2e5084a 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/DedicatedThreadAsyncMediaCodecAdapterTest.java @@ -290,11 +290,14 @@ public class DedicatedThreadAsyncMediaCodecAdapterTest { AtomicInteger onCodecStartCount = new AtomicInteger(0); adapter.setCodecStartRunnable(() -> onCodecStartCount.incrementAndGet()); adapter.start(); + // Grab reference to Looper before shutting down the adapter otherwise handlerThread.getLooper() + // might return null. + Looper looper = handlerThread.getLooper(); adapter.flush(); adapter.shutdown(); // Wait until all tasks have been handled. - Shadows.shadowOf(handlerThread.getLooper()).idle(); + Shadows.shadowOf(looper).idle(); // Only adapter.start() calls onCodecStart. assertThat(onCodecStartCount.get()).isEqualTo(1); } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java index bc9baab577..1232d8bf3e 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/mediacodec/MultiLockAsyncMediaCodecAdapterTest.java @@ -290,10 +290,13 @@ public class MultiLockAsyncMediaCodecAdapterTest { AtomicInteger codecStartCalls = new AtomicInteger(0); adapter.setCodecStartRunnable(() -> codecStartCalls.incrementAndGet()); adapter.start(); + // Grab reference to Looper before shutting down the adapter otherwise handlerThread.getLooper() + // might return null. + Looper looper = handlerThread.getLooper(); adapter.flush(); adapter.shutdown(); - Shadows.shadowOf(handlerThread.getLooper()).idle(); + Shadows.shadowOf(looper).idle(); // Only adapter.start() called codec#start() assertThat(codecStartCalls.get()).isEqualTo(1); }