首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >库源与使用ExoPlayer的类ImaAdsLoader的字节码不匹配

库源与使用ExoPlayer的类ImaAdsLoader的字节码不匹配
EN

Stack Overflow用户
提问于 2019-11-28 11:34:51
回答 1查看 340关注 0票数 0

在显示带有IMA扩展名和ProgressiveMediaSource的广告时,我遇到以下错误。就在preroll广告完成后,应用程序崩溃。在导航到类ImaAdsLoader时,我得到了错误消息"Library source not match the bytecode for class ImaAdsLoader“java.lang.NoSuchMethodError: No virtual method getAdGroupIndexAfterPositionUs(J)I in class Lcom/google/android/exoplayer2/source/ads/AdPlaybackState; or its super classes (declaration of 'com.google.android.exoplayer2.source.ads.AdPlaybackState' appears in /data/app/com.example.exomedia-pEwo-P6MjYGRL3PeKbTLiw==/base.apk) at com.google.android.exoplayer2.ext.ima.ImaAdsLoader.getContentProgress(ImaAdsLoader.java:758) at com.google.ads.interactivemedia.v3.internal.iu.a(IMASDK:4) at com.google.ads.interactivemedia.v3.internal.jh.handleMessage(IMASDK:27) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)步骤来重现:使用以下依赖项

implementation 'com.google.android.exoplayer:exoplayer-core:2.10.7' implementation 'com.google.android.exoplayer:exoplayer-ui:2.10.7' implementation 'com.google.android.exoplayer:extension-ima:2.9.6'

并通过以下代码发起播放:

代码语言:javascript
运行
复制
   player=ExoPlayerFactory.newSimpleInstance(this,DefaultTrackSelector())
    player_view.player=player
    adsLoader?.setPlayer(player)


    val dataSourceFactory = DefaultDataSourceFactory(
        this,
        "ExoDemo")

    val mediaSource:MediaSource=ProgressiveMediaSource.Factory(dataSourceFactory)
        .createMediaSource(Uri.parse(resources.getString(R.string.media_url_mp4)))

    val adsMediaSource = AdsMediaSource(mediaSource, dataSourceFactory, adsLoader, player_view)


    player?.prepare(adsMediaSource)
    player?.setPlayWhenReady(true)

在以下版本的库和使用ExtractorMediaSource的情况下,都可以正常工作:

implementation 'com.google.android.exoplayer:exoplayer-core:2.9.6' implementation 'com.google.android.exoplayer:exoplayer-ui:2.9.6' implementation 'com.google.android.exoplayer:extension-ima:2.9.6'

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 01:10:18

我最终发现extension_ima的版本必须与正在使用的ExoPlayer库的版本相匹配。或者,可以克隆ExoPlayer存储库并在本地依赖于该模块。

https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59081367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档