java - exoplayer 不玩添加并崩溃了

标签 java android exoplayer2.x googleads-mobile-unity

今天我从 升级了 exoplayer 2.9.5 到 2.10.4 在旧版本中一切正常,但在新版本中,他们添加了 AdsLoader.AdViewProvider,我不知道如何实现它。我尽力了,但问题没有解决。我想在 exoplayer 中播放广告。

MediaSource mediaSourceWithAds = new AdsMediaSource(contentMediaSource, mediaDataSourceFactory, adsLoader, new AdsLoader.AdViewProvider() {
                @Override
                public ViewGroup getAdViewGroup() {
                    return adFrameLayout;
                }

                @Override
                public View[] getAdOverlayViews() {
                    return new View[0];
                }
            });

            player.prepare(mediaSourceWithAds);

升级到新版本后出现此异常
java.lang.AbstractMethodError: abstract method "void com.google.android.exoplayer2.source.ads.AdsLoader.start(com.google.android.exoplayer2.source.ads.AdsLoader$EventListener, com.google.android.exoplayer2.source.ads.AdsLoader$AdViewProvider)"
    at com.google.android.exoplayer2.source.ads.AdsMediaSource.lambda$prepareSourceInternal$0$AdsMediaSource(AdsMediaSource.java:220)
    at com.google.android.exoplayer2.source.ads.-$$Lambda$AdsMediaSource$zcXBZahV9F-k_KJACPO-bl_WWX0.run(Unknown Source:4)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:180)
    at android.app.ActivityThread.main(ActivityThread.java:6950)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:835)

最佳答案

将以下行添加到您的 gradle.properties 文件中:

android.enableDexingArtifactTransform=false

问题在于 gradle build tools 3.5 的一个新特性,它也尝试优化外部依赖关系,并从 exoplayer 中剥离默认方法实现。

根据 android 团队问题跟踪器,这个问题应该通过正确声明 pom.xml 上的所有依赖项和临时依赖项来解决,但我找不到除此之外的任何解决方案。

答案来源
https://github.com/MasayukiSuda/GPUVideo-android/issues/25

关于java - exoplayer 不玩添加并崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57990458/

相关文章:

java - Akka 使用Java远程连接

java - 为什么 invalidate 必须由 UI 线程调用

android - 通过 Volley throw 错误上传图像。具有图像数组和文本数组

android - Recycler View 中的 ImageView - 滚动会导致所有图像具有相同的宽度

android - 当播放器暂停且应用程序被终止时,ExoPlayer 通知重新出现

android - 更改playerNotificationManager的操作图标,例如播放/暂停/停止

Java无法找到shell脚本

java - 指定在多核系统中使用的 CPU 数量

java - 如何在安卓平板电脑的屏幕上显示鼠标光标?

android - 在 ExoPlayer 中,如何使用 SimpleExoPlayer.setVideoScalingMode 就像在 ImageView center-crop 中一样?