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
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
+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 :/
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.