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 に変更することで、ビルド自体はできるようになります。
参考
その他
(ライブラリの更新はまめにしましょう)
追記1
Release Notes : June 17, 2009 では、破壊的な変更を含んでいる。このリリース以降と以前のライブラリは、共存できないのでは ?
Firebase Crashlytics 17.0.0 のリリースは Release Notes : April 23,2020 なので、その他の google play services なライブラリも、移行が必要だったのでは。
(11.6.2 は古すぎだが)
Author And Source
この問題について(Firebase Crashlytics SDK 導入時にあった Gradle エラー), 我々は、より多くの情報をここで見つけました https://qiita.com/ykakizaki/items/28204bb9c01fa39e852a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .