3

I use a couple of Google Services in my Android app and have been on v11.8.0 until I upgraded to v15.0.0. This is the error I get when I try to run the project:

Exception in thread "main" java.lang.IllegalArgumentException
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)
    at com.google.devtools.build.android.desugar.DefaultMethodClassFixer$DefaultMethodFinder.visit(DefaultMethodClassFixer.java:483)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:621)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.defaultMethodsDefined(DefaultMethodClassFixer.java:331)
    at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.visitEnd(DefaultMethodClassFixer.java:91)
    at org.objectweb.asm.ClassVisitor.visitEnd(ClassVisitor.java:339)
    at com.google.devtools.build.android.desugar.InterfaceDesugaring.visitEnd(InterfaceDesugaring.java:112)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:702)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzbfm
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:66)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
    at com.google.devtools.build.android.desugar.LambdaDesugaring.findTargetMethod(LambdaDesugaring.java:327)
    at com.google.devtools.build.android.desugar.LambdaDesugaring.queueUpBridgeMethodIfNeeded(LambdaDesugaring.java:236)
    at com.google.devtools.build.android.desugar.LambdaDesugaring.access$200(LambdaDesugaring.java:56)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:413)
    at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1623)
    at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1126)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)
Caused by: java.lang.ClassNotFoundException: Class com.google.android.gms.internal.zzbfm not found
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzbfm
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:66)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:83)
    at sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:54)
    at sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41)
    at java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.toMethodHandle(LambdaDesugaring.java:660)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.toJvmMetatype(LambdaDesugaring.java:647)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:408)
    at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1623)
    at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1126)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:477)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:361)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:314)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:711)
Caused by: java.lang.ClassNotFoundException: Class com.google.android.gms.internal.zzbfm not found
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more

This is my build.gradle file:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.3'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
    maven { url "http://dl.bintray.com/glomadrian/maven" }
}

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "com.android.app"
        minSdkVersion 19
        targetSdkVersion 27
        renderscriptTargetApi 20
        renderscriptSupportModeEnabled true
        versionCode 149
        versionName "1.1.0"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true

//        multiDexKeepProguard file('multidex-config.pro')
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-fresco.pro'

            lintOptions {
                disable 'MissingTranslation'
            }
        }
    }

    dexOptions {
        keepRuntimeAnnotatedClasses false
        javaMaxHeapSize "4g"
    }

    packagingOptions {
        exclude 'META-INF/rxjava.properties'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
        transitive = true;
    }
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:support-media-compat:27.1.0'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.google.android.exoplayer:exoplayer-core:r2.5.4'
    implementation 'com.google.android.exoplayer:exoplayer-dash:r2.5.4'
    implementation 'com.google.android.exoplayer:exoplayer-hls:r2.5.4'
    implementation 'com.google.android.exoplayer:exoplayer-ui:r2.5.4'
    implementation 'com.google.android.exoplayer:extension-rtmp:r2.5.4'
    implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:r2.5.4'
    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
    implementation 'org.apache.commons:commons-lang3:3.4'
    implementation "com.google.firebase:firebase-core:15.0.0"
    implementation "com.google.firebase:firebase-messaging:15.0.0"
    implementation "com.google.firebase:firebase-config:15.0.0"
    implementation "com.google.android.gms:play-services-gcm:15.0.0"
    implementation 'com.google.android.gms:play-services-auth:15.0.0'
    implementation 'io.realm:android-adapters:2.1.1'
    implementation 'org.parceler:parceler-api:1.1.6'
    implementation 'com.jakewharton:butterknife:8.6.0'
    implementation 'com.evernote:android-job:1.2.4'
    implementation 'com.flurry.android:analytics:6.4.2'
    implementation 'com.amazonaws:aws-android-sdk-core:2.6.0'
    implementation 'com.amazonaws:aws-android-sdk-pinpoint:2.6.0'
    implementation 'com.amazonaws:aws-android-sdk-sns:2.6.0'
    implementation 'com.wdullaer:materialdatetimepicker:3.1.3'
    testImplementation 'junit:junit:4.12'
    kapt 'org.parceler:parceler:1.1.5'
    kapt 'com.jakewharton:butterknife-compiler:8.6.0'
    implementation 'com.google.android:flexbox:0.3.0-alpha3'
    implementation 'com.airbnb:deeplinkdispatch:3.1.0'
    kapt 'com.airbnb:deeplinkdispatch-processor:3.1.0'
    implementation 'com.google.dagger:dagger:2.11'
    kapt 'com.google.dagger:dagger-compiler:2.11'
    implementation 'jp.wasabeef:fresco-processors:2.1.0'
    implementation 'com.github.franmontiel:LocaleChanger:0.9.1'
    implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    implementation "com.radioafricagroup.payments:payments-sdk:0.0.15"
    implementation "com.radioafricagroup.billing:billing-sdk:0.0.6"
    implementation 'io.reactivex.rxjava2:rxkotlin:2.1.0'
    implementation "org.jetbrains.anko:anko:$anko_version"
    implementation "org.jetbrains.anko:anko-commons:$anko_version"
    implementation "org.jetbrains.anko:anko-design:$anko_version"
    implementation "org.jetbrains.anko:anko-recyclerview-v7:$anko_version"
    implementation 'com.simplecityapps:recyclerview-fastscroll:1.0.16'
    implementation('com.appsee:appsee-android:2.3.4@aar') {
        transitive = true
    }
    implementation('io.fabric.sdk.android:fabric:1.3.10@aar') {
        transitive = true
    }
    implementation 'com.github.ronaldsmartin:Material-ViewPagerIndicator:1.0.4'
    implementation 'com.github.florent37:rxgps:1.0.1'
    implementation 'com.github.fondesa:kpermissions:1.0.0'
    implementation 'com.hendraanggrian:recyclerview-paginated:0.6'
    implementation 'com.airbnb.android:lottie:2.5.0-rc1'
    implementation 'com.amitshekhar.android:android-networking:1.0.1'
    implementation 'com.github.bumptech.glide:glide:4.6.1'
    kapt 'com.github.bumptech.glide:compiler:4.6.1'
    implementation 'jp.wasabeef:glide-transformations:3.2.0'
    implementation 'com.github.florent37:glidepalette:2.1.2'
}

apply plugin: 'com.google.gms.google-services'

I've tried using v15.0.2 of Firebase services and v15.0.1 of Google services but they all yield the same result.

Reverting everything back to v11.8.0 works but any update won't. What's changed?

I've updated by Google services plugin version to 3.3.0 but the issue still persists.

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.anko_version = '0.10.4'
    ext.google_services_version = '15.0.2'
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "io.realm:realm-gradle-plugin:3.5.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url 'https://maven.google.com' }
        google()
    }
}

I've cleaned the project multiple times, invalidated caches and restarted Android Studio multiple times as well but nothing's changed.

Alex Kombo
  • 3,256
  • 8
  • 34
  • 67
  • Possible duplicate of [Compilation failed to complete:Program type already present: com.google.android.gms.internal.measurement.zzabn](https://stackoverflow.com/questions/50149266/compilation-failed-to-completeprogram-type-already-present-com-google-android) – Peter Haddad May 07 '18 at 09:24
  • @PeterHaddad I have but nothing's changed. I am using v3.3.0 of google-services and the latest firebase and google-services versions but the error is still there. – Alex Kombo May 07 '18 at 10:23
  • clean and rebuild the project, also which android studio are u using? @AlexKombo – Peter Haddad May 07 '18 at 11:21
  • I'm using Android Studio 3.1.2. I've cleaned and rebuilt the project multiple times to no avail. I've just reverted back to `11.8.0` and moved on until I find a viable solution. – Alex Kombo May 07 '18 at 11:52

2 Answers2

0

Please refer https://firebase.google.com/support/release-notes/android and adding appropriate firebase Services in your Android Project.

Kasim Rangwala
  • 1,765
  • 2
  • 23
  • 44
0

You have to use the google play services plugin 3.3.0:

classpath 'com.google.gms:google-services:3.3.0'
Gabriele Mariotti
  • 320,139
  • 94
  • 887
  • 841