Hello,
This crash is reported by Firebase Crashlytics for my app on production, I don't have the associated media but I guess on ads click will make the app crash on devices having no WebView installed.
Version:ExoPlayer 2.10.6
Devices that reproduce the issue:Sony TV [Bravia 4K GB ATV3]
Sumitomo Electric TV [XA401]
Android version:
Android 9 & Android 11
Devices that do not reproduce the issue:AndroidTV devices having WebView installed.
Reproducible in the demo app?Not tested
Reproduction stepsClick on ads
Expected resultThe media plays successfully
Actual resultThe app crashes with the following stacktrace:
Caused by android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: android.content.pm.PackageManager$NameNotFoundException: Application package com.google.android.webview not found
at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:389)
at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:402)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:252)
at android.webkit.WebView.getFactory(WebView.java:2576)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2570)
at android.webkit.WebView.setOverScrollMode(WebView.java:2638)
at android.view.View.<init>(View.java:5321)
at android.view.View.<init>(View.java:5467)
at android.view.ViewGroup.<init>(ViewGroup.java:697)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:56)
at android.webkit.WebView.<init>(WebView.java:413)
at android.webkit.WebView.<init>(WebView.java:355)
at android.webkit.WebView.<init>(WebView.java:337)
at android.webkit.WebView.<init>(WebView.java:324)
at android.webkit.WebView.<init>(WebView.java:314)
at com.google.ads.interactivemedia.v3.internal.adz.<init>(IMASDK:1)
at com.google.ads.interactivemedia.v3.internal.aeb.<init>(IMASDK:53)
at com.google.ads.interactivemedia.v3.internal.ach.<init>(IMASDK:14)
at com.google.ads.interactivemedia.v3.internal.ach.<init>(IMASDK:4)
at com.google.ads.interactivemedia.v3.api.ImaSdkFactory.createAdsLoader(IMASDK:12)
at com.xyz.video.xyztvapp.ssai.RTVDaiAdsLoader.<init>(RTVDaiAdsLoader.kt:57)
at com.xyz.video.xyztvapp.ssai.RTVDaiAdsLoader$Builder.build(RTVDaiAdsLoader.kt:169)
at com.xyz.video.xyztvapp.presentation.ui.playback.ExoPlayerAdapter.onCreateMediaSource(ExoPlayerAdapter.kt:449)
at com.xyz.video.xyztvapp.presentation.ui.playback.ExoPlayerAdapter.prepareMediaForPlaying(ExoPlayerAdapter.kt:566)
at com.xyz.video.xyztvapp.presentation.ui.playback.VideoMediaPlayerGlue.prepare(VideoMediaPlayerGlue.kt:751)
at com.xyz.video.xyztvapp.presentation.ui.fragment.PlaybackFragment.play(PlaybackFragment.kt:270)
at com.xyz.video.xyztvapp.presentation.ui.fragment.PlaybackFragment.startPlayback(PlaybackFragment.kt:484)
at com.xyz.video.xyztvapp.presentation.presenter.PlaybackPresenter$PlGameInfoUseCaseSingleObserver.onSuccess(PlaybackPresenter.kt:803)
at com.xyz.video.xyztvapp.presentation.presenter.PlaybackPresenter$PlGameInfoUseCaseSingleObserver.onSuccess(PlaybackPresenter.kt:795)
at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)