React-native-track-player: ExoPlayer$EventListener resolution errors when upgrading from 1.1.4 -> 1.1.8

Created on 9 Aug 2019  路  7Comments  路  Source: react-native-kit/react-native-track-player

Configuration

React Native Environment Info:
System:
OS: macOS 10.14.5
CPU: (8) x64 Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz
Memory: 140.60 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.2.0 - ~/.nvm/versions/node/v12.2.0/bin/node
Yarn: 1.15.2 - ~/.yarn/yarn-v1.9.4/bin/yarn
npm: 6.9.0 - ~/.nvm/versions/node/v12.2.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
Android SDK:
API Levels: 23, 27, 28, 29
Build Tools: 28.0.3, 29.0.1
System Images: android-29 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5692245
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.5 => 0.59.5
npmGlobalPackages:
react-native-cli: 2.0.1

Issue

Platform: Android

react-native-track-player version: 1.1.8

After upgrading from react-native-track-player version 1.1.4 -> 1.1.8, we are seeing issues with ExoPlayer, where EventListener cannot be resolved (see the crash report below). I confirmed that downgrading back to 1.1.4 resolves this particular issue. Unfortunately we are relying on some of the new features in 1.1.8, so cannot simply downgrade.

    --------- beginning of crash
2019-08-09 16:57:56.751 28937-30282/com.finimize.oban E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
    Process: com.finimize.oban, PID: 28937
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/exoplayer2/ExoPlayer$EventListener;
        at com.brentvatne.react.ReactVideoPackage.createViewManagers(ReactVideoPackage.java:28)
        at com.facebook.react.ReactInstanceManager.getOrCreateViewManagers(ReactInstanceManager.java:770)
        at com.facebook.react.CoreModulesPackage.createUIManager(CoreModulesPackage.java:182)
        at com.facebook.react.CoreModulesPackage.getModule(CoreModulesPackage.java:150)
        at com.facebook.react.TurboReactPackage$ModuleHolderProvider.get(TurboReactPackage.java:123)
        at com.facebook.react.TurboReactPackage$ModuleHolderProvider.get(TurboReactPackage.java:111)
        at com.facebook.react.bridge.ModuleHolder.create(ModuleHolder.java:189)
        at com.facebook.react.bridge.ModuleHolder.getModule(ModuleHolder.java:154)
        at com.facebook.react.bridge.NativeModuleRegistry.getModule(NativeModuleRegistry.java:148)
        at com.facebook.react.bridge.CatalystInstanceImpl.getNativeModule(CatalystInstanceImpl.java:427)
        at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:38)
        at com.facebook.react.ReactInstanceManager.attachRootViewToInstance(ReactInstanceManager.java:1044)
        at com.facebook.react.ReactInstanceManager.setupReactContext(ReactInstanceManager.java:1003)
        at com.facebook.react.ReactInstanceManager.access$1300(ReactInstanceManager.java:123)
        at com.facebook.react.ReactInstanceManager$5$2.run(ReactInstanceManager.java:964)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
        at android.os.Looper.loop(Looper.java:214)
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.exoplayer2.ExoPlayer$EventListener" on path: DexPathList[[zip file "/data/app/com.finimize.oban-WgO13oUw99_F6kQcaJ_FYQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.finimize.oban-WgO13oUw99_F6kQcaJ_FYQ==/lib/x86, /data/app/com.finimize.oban-WgO13oUw99_F6kQcaJ_FYQ==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.brentvatne.react.ReactVideoPackage.createViewManagers(ReactVideoPackage.java:28)聽
        at com.facebook.react.ReactInstanceManager.getOrCreateViewManagers(ReactInstanceManager.java:770)聽
        at com.facebook.react.CoreModulesPackage.createUIManager(CoreModulesPackage.java:182)聽
        at com.facebook.react.CoreModulesPackage.getModule(CoreModulesPackage.java:150)聽
        at com.facebook.react.TurboReactPackage$ModuleHolderProvider.get(TurboReactPackage.java:123)聽
        at com.facebook.react.TurboReactPackage$ModuleHolderProvider.get(TurboReactPackage.java:111)聽
        at com.facebook.react.bridge.ModuleHolder.create(ModuleHolder.java:189)聽
        at com.facebook.react.bridge.ModuleHolder.getModule(ModuleHolder.java:154)聽
        at com.facebook.react.bridge.NativeModuleRegistry.getModule(NativeModuleRegistry.java:148)聽
        at com.facebook.react.bridge.CatalystInstanceImpl.getNativeModule(CatalystInstanceImpl.java:427)聽
        at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:38)聽
        at com.facebook.react.ReactInstanceManager.attachRootViewToInstance(ReactInstanceManager.java:1044)聽
        at com.facebook.react.ReactInstanceManager.setupReactContext(ReactInstanceManager.java:1003)聽
        at com.facebook.react.ReactInstanceManager.access$1300(ReactInstanceManager.java:123)聽
        at com.facebook.react.ReactInstanceManager$5$2.run(ReactInstanceManager.java:964)聽
        at android.os.Handler.handleCallback(Handler.java:883)聽
        at android.os.Handler.dispatchMessage(Handler.java:100)聽
        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)聽
        at android.os.Looper.loop(Looper.java:214)聽
        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)聽
        at java.lang.Thread.run(Thread.java:919)聽

Please let me know if you have any ideas what could be causing this? Any help would be really appreciated.

Thanks
Mark

Android wontfix

Most helpful comment

It looks like you're using react-native-video and react-native-track-player. 1.1.8 uses a newer version from ExoPlayer, while react-native-video seems to be using an older one. It's a dependency conflict.

We're not going to downgrade ExoPlayer, sorry.

All 7 comments

+1

+1

It looks like you're using react-native-video and react-native-track-player. 1.1.8 uses a newer version from ExoPlayer, while react-native-video seems to be using an older one. It's a dependency conflict.

We're not going to downgrade ExoPlayer, sorry.

As I downgraded to version 1.1.4, it worked!
But is there another way to solve this issue?

You can update both packages to the latest ExoPlayer version.

Yeah! I have updraded the packages to those versions:
"react-native-video": "^5.0.2"
"react-native-track-player": "^2.0.0-rc9"
It now works perfectly fine. Thanks!

@SamiChab this is not working for me :/

Was this page helpful?
0 / 5 - 0 ratings