Firebase Crashlytics SDK 배포 중에 발생한 Gradle 오류

firebase crashlytics SDK를 배포할 때 다음과 유사한 오류가 발생했습니다.
> Task :app:compileDebugKotlin FAILED
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
    class com.google.android.gms.location.LocationResult, unresolved supertypes: com.google.android.gms.internal.zzbej


e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:

com.google.android.gms.location.LocationResult 클래스를 상속하는 com.google.android.gms.internal.zzbej 클래스를 찾을 수 없습니다.

gradle 파일



build.gradle 파일
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {

    // 移行中のため古い環境です
    //ext.kotlin_version = "1.4.0"
    ext.kotlin_version = "1.3.10"
    repositories {
        google()
        jcenter()
    }
    dependencies {

        // 移行中のため古い環境です
        //classpath "com.android.tools.build:gradle:4.0.1"
        classpath "com.android.tools.build:gradle:3.5.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        classpath 'com.google.gms:google-services:4.3.4'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

app/build.gradle 파일
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

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

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.example.gradleerrorsample"
        minSdkVersion 28
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            firebaseCrashlytics {
                mappingFileUploadEnabled false
            }
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

    implementation 'com.google.android.gms:play-services-location:11.6.2'

    implementation 'com.google.firebase:firebase-crashlytics:17.2.2'
}

조사



(1)



android studio에서 LocationResult 클래스를 참조해 보았습니다.



확실히 zzbej 클래스를 찾을 수 없습니다.

(2)



빌드가 통과할 때까지 반환했습니다(implementation 'com.google.firebase:firebase-crashlytics:17.2.2' 주석 처리).



zzbej 클래스는, com.google.android.gms:play-services-basement:11.6.2 로 정의되고 있는 것 같습니다.

(3)



(2)의 주석 처리를 해제 한 후 gradle app:dependencies를 실행하여 라이브러리 종속성을 출력했습니다.



262 - 271 행은 play-services-location 종속성입니다.play-services-basement(예: 264행) 또는 playservices-tasks(예: 268행)이 11.6.2에서 17.0.0으로 변경되었습니다.

272행부터는 com.google.firebase:firebase-crashlytics 종속성입니다.
다음 종속성이 있는 것 같습니다.
  • 288행에서 play-services-tasks 의 17.0.0
  • 290행에서 play-services-basement 의 17.0.0
  • play-services-location 같은 이름의 라이브러리는 전이적인 종속성을 해결하여 새 버전을 사용합니다.

    대응


    play-services-location를 17.0.0으로 변경하면 빌드 자체가 가능합니다.



    참고



    조심하고자하는 Gradle의 전이 의존성과 그 해결

    기타



    (라이브러리 업데이트를 마무리합시다)

    추가 1



    Release Notes : June 17, 2009에는 파괴적인 변경 사항이 포함되어 있습니다. 이 릴리스 이후 및 이전 라이브러리는 공존 할 수 없습니까?

    Firebase Crashlytics 17.0.0의 릴리스는 Release Notes : April 23,2020이므로 다른 google play services 라이브러리도 마이그레이션이 필요했습니다.

    (11.6.2는 너무 오래되었지만)

    좋은 웹페이지 즐겨찾기