androidandroid-gradle-plugincrashlyticsandroid-gradle-7.0

Unable to add Firebase Crashlytics for Gradle version 7.2


Unable to add Firebase Crashlytics dependencies/classpath in Android for Gradle 7.2

Where should I write.

classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.0'

I successfully mapped Google services as.

    classpath 'com.google.gms:google-services:4.3.10'    
    //to
    id "com.google.gms.google-services" version "4.3.10" apply false

Getting following error if I map Crashlytics classpath

Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.google.firebase.firebase-crashlytics-gradle', version: '2.9.0', apply: false] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'com.google.firebase.firebase-crashlytics-gradle:com.google.firebase.firebase-crashlytics-gradle.gradle.plugin:2.9.0')
  Searched in the following repositories:
    Gradle Central Plugin Repository
    Google
    MavenRepo
    BintrayJCenter
    maven(https://jitpack.io)

Project level Gradle

plugins {
    id 'com.android.application' version '7.1.2' apply false
    id 'com.android.library' version '7.1.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
    id "com.google.gms.google-services" version "4.3.10" apply false
    // below line has a problem
    id 'com.google.firebase.firebase-crashlytics-gradle' version '2.9.0' apply false

}

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

dependencies {

}

Gradle-wrapper.properties

#Thu May 12 10:12:33 PKT 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

settings.gradle

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
        jcenter()
        maven { url 'https://jitpack.io' }

    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven { url 'https://jitpack.io' }

    }
}
rootProject.name = "Video Player"
include ':app'

I had searched a lot before posting this question but didn't find something useful.


Solution

  • The documentation is not updated for the new Android project structure yet.

    In your project level build.gradle you need to add this:

    buildscript {
      //other things....
      dependencies {
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.0'
      }
    }
    
    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    plugins {
      id 'com.android.application' version '7.2.1' apply false
      id 'com.android.library' version '7.2.1' apply false
      id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
      id "com.google.gms.google-services" version "4.3.10" apply false
    }
    
    task clean(type: Delete) {
      delete rootProject.buildDir
    }
    

    Then in your app level build.gradle at the start you need to add the plugin

    plugins {
      id 'com.android.application'
      id 'org.jetbrains.kotlin.android'
      id 'com.google.firebase.crashlytics'
    }
    

    and then in the same file add the Crashlytics dependencies to the corresponding block:

    dependencies {
       //... other dependencies
       implementation platform('com.google.firebase:firebase-bom:30.1.0')
    
       implementation 'com.google.firebase:firebase-crashlytics-ktx'
       implementation 'com.google.firebase:firebase-analytics-ktx'
    }