Search code examples
androidfirebasegradlefirebase-performance

Cannot compile with Firebase Performance. (Unable to find method...)


I'm trying to add Firebase Performance Monitoring to my Android Studio project. After I followed the steps on how to add it to my app, I cannot compile my app. This is the error:

Error:(1, 0) Unable to find method 'com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V'.
Possible causes for this unexpected error include:

  • Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)
  • The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. Stop Gradle build processes (requires restart)
  • Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

Project build.gradle:

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

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha7'
        classpath 'com.google.gms:google-services:3.1.0'
        classpath 'com.google.firebase:firebase-plugins:1.1.0'

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

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

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

// Define versions in a single place
ext {
    // Sdk and tools
    minSdkVersion = 16
    targetSdkVersion = 26
    compileSdkVersion = 26
    buildToolsVersion = '26.0.0'

    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8

    // Version
    versionCode = 1;
    versionName = "0.0.1";

    ...

    // Firebase
    firebaseVersion = '11.0.2'

    ...
}

App build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "REMOVED"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        vectorDrawables.useSupportLibrary = true
        dataBinding.enabled = true
    }
    compileOptions {
        sourceCompatibility = rootProject.ext.sourceCompatibility
        targetCompatibility = rootProject.ext.targetCompatibility
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    ...
    
    // Firebase
    compile "com.google.firebase:firebase-core:$rootProject.firebaseVersion"
    compile "com.google.firebase:firebase-perf:$rootProject.firebaseVersion"

    ...
}

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

Solution

  • You probably had firebase in your buildscript dependencies.

    The problem was that I had firebase in my buildscript dependencies, so it looked something like this:

    buildscript {
        ext.kotlin_version = '1.1.3-2'
        apply from: 'dependencies.gradle'
        repositories {
            ...
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.0-alpha6'
            classpath ('com.google.firebase:firebase-plugins:1.1.0') //the firebase line
            ....
        }
    }
    

    replacing the firebase classpath line with this:

    classpath ('com.google.firebase:firebase-plugins:1.1.0') {
        exclude group: 'com.google.guava', module: 'guava-jdk5'
    }
    

    Then you have to clean the project, kill the gradle daemon and restart android studio.

    Unable to find method (can't compile project) after gradle update