question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Guava List equalsImpl method is missing, causing a crash

See original GitHub issue

Updating to the latest version (v2.14.1) from v2.11.8 is causing NoSuchMethodError when calling stop or setPlayWhenReady on SimpleExoPlayer.

Stacktrace:

    java.lang.NoSuchMethodError: No static method equalsImpl(Ljava/util/List;Ljava/lang/Object;)Z in class Lcom/google/common/collect/Lists; or its super classes (declaration of 'com.google.common.collect.Lists' appears in /data/app/nz.co.nuffie.android.crichq.debug-F5vmfXFZC-UlvORDHCviyA==/base.apk!classes8.dex)
        at com.google.common.collect.ImmutableList.equals(ImmutableList.java:623)
        at com.google.android.exoplayer2.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:1225)
        at com.google.android.exoplayer2.ExoPlayerImpl.setPlayWhenReady(ExoPlayerImpl.java:616)
        at com.google.android.exoplayer2.SimpleExoPlayer.updatePlayWhenReady(SimpleExoPlayer.java:1992)
        at com.google.android.exoplayer2.SimpleExoPlayer.setPlayWhenReady(SimpleExoPlayer.java:1496)
        at nz.co.nuffie.android.crichq.video.VideoManager.prepareExoPlayer(VideoManager.java:114)

I’ve also tried updating to v2.12.3 (and 2.12.1). Similar crash (indexOfImpl is missing on List):

    java.lang.NoSuchMethodError: No static method indexOfImpl(Ljava/util/List;Ljava/lang/Object;)I in class Lcom/google/common/collect/Lists; or its super classes (declaration of 'com.google.common.collect.Lists' appears in /data/app/nz.co.nuffie.android.crichq.debug-BxWHG_pgvtKE-xGwN0d2Xw==/base.apk!classes8.dex)
        at com.google.common.collect.ImmutableList.indexOf(ImmutableList.java:391)
        at com.google.common.collect.ImmutableList.contains(ImmutableList.java:401)
        at com.google.android.exoplayer2.analytics.AnalyticsCollector$MediaPeriodQueueTracker.updateMediaPeriodTimelines(AnalyticsCollector.java:845)
        at com.google.android.exoplayer2.analytics.AnalyticsCollector$MediaPeriodQueueTracker.onQueueUpdated(AnalyticsCollector.java:827)
        at com.google.android.exoplayer2.analytics.AnalyticsCollector.updateMediaPeriodQueueInfo(AnalyticsCollector.java:140)
        at com.google.android.exoplayer2.MediaPeriodQueue.lambda$notifyQueueUpdate$0$MediaPeriodQueue(MediaPeriodQueue.java:433)
        at com.google.android.exoplayer2.-$$Lambda$MediaPeriodQueue$mWNPMcRbVVz2oDENMZzwGKF1Dk8.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Does anyone have any idea what the issue could be?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:9 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
dan-ryancommented, Aug 19, 2021

Issue solved. Some old files from Guava from way back (before Android Studio) were in our project sitting and not being used. I deleted the lot, and that solved it! I’ve recently taken over the project hence why I didn’t know about the files.

1reaction
icbakercommented, Jul 22, 2021

It happens to all builds after v2.11.8 but is not an issue for builds before it. Whatever broke it happened in 2.12.0 or 2.12.1.

ExoPlayer’s Guava dependency was introduced in 2.12.0 - that would explain why you don’t see problems before that:

  • Add a dependency on Guava.
Read more comments on GitHub >

github_iconTop Results From Across the Web

org-drill/programming.org at master - GitHub
Answer. Yes, except in two cases: If you call System.exit(); If the JVM crashes first. ... Why is List.remove a good example of...
Read more >
Diff - platform/external/kotlinx.coroutines - Google Git
+* Guava version in `kotlinx-coroutines-guava` updated to `28.0`. +* `setTimeout`-based JS dispatcher for platforms where `process` is unavailable (#1404).
Read more >
The Java Module System - Library
present) but will crash later, when, for example, a class or method is missing. Because the module system is developed to exhibit consistent....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found