exoplayer无法播放添加,并得到了崩溃

问题描述 投票:3回答:1

今天我把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)
java android exoplayer2.x googleads-mobile-unity
1个回答
0
投票

在你的gradle.properties文件中添加以下一行。

android.enableDexingArtifactTransform=false

问题出在gradle构建工具3.5的一个新特性上,它试图优化外部依赖关系,并从exoplayer中剥离默认方法的实现。

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

答案来源https:/github.comMasayukiSudaGPUVideo-androidissues25。

© www.soinside.com 2019 - 2024. All rights reserved.