Reputation: 81
Today i upgraded exoplayer from 2.9.5 to 2.10.4 every thing is working fine in old version but in new version they added AdsLoader.AdViewProvider and i don't know how to implement it. I try my best but the issue does not resolved. I want to play ads in 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);
i got this exception after upgrade to new version
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)
Upvotes: 7
Views: 3962
Reputation: 1134
Add the following line to your gradle.properties file:
android.enableDexingArtifactTransform=false
The problem resides in a new feature of the gradle build tools 3.5 where it tries to optimise external dependencies as well and it strips default method implementations from exoplayer.
According to the android team issue tracker this issue should be fixed by correctly declaring all dependencies and transient dependencies on the pom.xml but I couldn't find any solution other than this.
Answer source https://github.com/MasayukiSuda/GPUVideo-android/issues/25
Upvotes: 5