Flurry Ads IncompatibleClassChangeError

Flurry Ads IncompatibleClassChangeError

我正在使用 Admob 中介从多个不同的发布商那里拉取广告。我的 flurry 横幅广告似乎没有被正确拉出。我在控制台日志中看到以下错误:

java.lang.IncompatibleClassChangeError: Class 'com.google.ads.mediation.flurry.impl.b' does not implement interface 'com.flurry.android.ads.FlurryAdBannerListener'

完整的堆栈跟踪如下:

W/System.err: java.lang.IncompatibleClassChangeError: Class 'com.google.ads.mediation.flurry.impl.b' does not implement interface 'com.flurry.android.ads.FlurryAdBannerListener' in call to 'void com.flurry.android.ads.FlurryAdBannerListener.onError(com.flurry.android.ads.FlurryAdBanner, com.flurry.android.ads.FlurryAdErrorType, int)' (declaration of 'com.flurry.android.ads.FlurryAdBanner' appears in /data/data/com.printandpixel.lolhistory/files/instant-run/dex/slice-ads-6.4.2_b7bf7c0890e97695ecaacfe25f623800b871f89f-classes.dex)
W/System.err:     at com.flurry.android.ads.FlurryAdBanner.a(SourceFile:56)
W/System.err:     at com.flurry.sdk.ma.run(SourceFile:42)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:152)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5507)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
W/System.err: java.lang.IncompatibleClassChangeError: Class 'com.google.ads.mediation.flurry.impl.b' does not implement interface 'com.flurry.android.ads.FlurryAdBannerListener' in call to 'void com.flurry.android.ads.FlurryAdBannerListener.onError(com.flurry.android.ads.FlurryAdBanner, com.flurry.android.ads.FlurryAdErrorType, int)' (declaration of 'com.flurry.android.ads.FlurryAdBanner' appears in /data/data/com.printandpixel.lolhistory/files/instant-run/dex/slice-ads-6.4.2_b7bf7c0890e97695ecaacfe25f623800b871f89f-classes.dex)
W/System.err:     at com.flurry.android.ads.FlurryAdBanner.a(SourceFile:56)
W/System.err:     at com.flurry.sdk.ma.run(SourceFile:42)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:152)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5507)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
W/System.err: java.lang.IncompatibleClassChangeError: Class 'com.google.ads.mediation.flurry.impl.b' does not implement interface 'com.flurry.android.ads.FlurryAdBannerListener' in call to 'void com.flurry.android.ads.FlurryAdBannerListener.onFetched(com.flurry.android.ads.FlurryAdBanner)' (declaration of 'com.flurry.android.ads.FlurryAdBanner' appears in /data/data/com.printandpixel.lolhistory/files/instant-run/dex/slice-ads-6.4.2_b7bf7c0890e97695ecaacfe25f623800b871f89f-classes.dex)
W/System.err:     at com.flurry.android.ads.FlurryAdBanner.a(SourceFile:52)
W/System.err:     at com.flurry.sdk.ma.run(SourceFile:42)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:739)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:152)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5507)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

开发者 contact page seems to be down and they haven't replied to my tweet 也有。

有什么建议吗?如果有人知道 Flurry 移动广告团队的联系电子邮件,那也很棒。


编辑: 我遵循了此处的集成说明:https://developer.yahoo.com/flurry/docs/publisher/code/adaptors/admob/android/

作为参考,我使用的是从 here 中提取的 flurryAdapter.jar 版本 6.4.2 以及以下 gradle 片段:

apply plugin: 'com.android.application'
android {
    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled false
        }
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        //...
    }
    dependencies {
        //...
        compile 'com.google.android.gms:play-services-ads:9.2.1'
        compile 'com.google.android.gms:play-services-basement:9.2.1'
        compile 'com.flurry.android:ads:6.4.2'
    }
}

根据 Flurry 支持的官方回复,这是 Admob 适配器版本 6.4.2 中的错误。

我已经在 6.4.3 中修复了 https://github.com/flurry/flurry-adapter-admob-android/tree/6.4.3