NoClassDefFoundError on com.google.android.gms.internal.firebase-perf.zzw-ThrowExceptions

Exception or error:

Received numbers of crash report from Firebase Crashlytics. It is related to firebase-perf I think.

Fatal Exception: java.lang.NoClassDefFoundError: com.google.android.gms.internal.firebase-perf.zzw
   at com.google.firebase.perf.metrics.Trace.start(Unknown Source:44)
   at com.google.android.gms.internal.firebase-perf.zze.onActivityStarted(Unknown Source:48)
   at android.app.Application.dispatchActivityStarted(Application.java:205)
   at android.app.Activity.onStart(Activity.java:1150)

Already using the newest version of Firebase and Google Play Services.

It does not crash on devices in Firebase Test Lab. But ~1% of user facing this problem.

Is it related to absent of GMS Core? If so, how to handle it properly, not causing crash on those devices?

— Update —

project build.gradle

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

    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0-alpha04'
        classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

App build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.2'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "MASKED"
        minSdkVersion 18
        targetSdkVersion 28
        versionCode "MASKED"
        versionName "MASKED"
        resConfigs "en"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
        dataBinding {
            enabled = true
        }
    }


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

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    lintOptions {
        abortOnError false
        textReport true
        textOutput 'stdout'
        checkReleaseBuilds false

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
    implementation 'androidx.annotation:annotation:1.0.0-rc01'
    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
    implementation 'androidx.leanback:leanback:1.0.0-rc01'
    implementation 'androidx.cardview:cardview:1.0.0-rc01'
    implementation 'androidx.gridlayout:gridlayout:1.0.0-rc01'
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    implementation 'com.google.firebase:firebase-config:16.0.0'
    implementation 'com.google.firebase:firebase-perf:16.0.0'

    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'com.google.android.gms:play-services-oss-licenses:16.0.0'
    implementation 'com.google.android:flexbox:1.0.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'

}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
How to solve:

Firebase support has just confirmed me this is a bug. They are working on this right now (although they weren’t able to reproduce it yet). So we should expect this to be fixed in a future Firebase release.

###

Update: Please update to Firebase Performance Version 16.2.5 to solve this issue.

Leave a Reply

Your email address will not be published. Required fields are marked *