Search code examples
androidadmobflurrymobile-ad-mediation

Flurry Ads IncompatibleClassChangeError


I'm using Admob mediation to pull ads from several different publishers publishers. My flurry banner ads don't seem to be pulled correctly. I'm seeing the following errors in my console log:

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

The full stack trace is as follows:

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$1$1' 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$1$1.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$1$1' 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$1$1.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$1$1' 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$1$1.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)

The developer contact page seems to be down and they haven't replied to my tweet about it either.

Any suggestions? If someone knows the contact email for the flurry mobile ads team that would be awesome as well.


Edit: I followed the integration instructions found here: https://developer.yahoo.com/flurry/docs/publisher/code/adaptors/admob/android/

For reference I'm using the flurryAdapter.jar version 6.4.2 pulled from here as well as the following gradle snippets:

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'
    }
}

Solution

  • As per official reply from Flurry support this was a bug in version 6.4.2 of the Admob adapter.

    I has since been fixed in 6.4.3 https://github.com/flurry/flurry-adapter-admob-android/tree/6.4.3