如何在纯Kotlin模块中集成Firebase Crashlytics?
多模块Android项目中纯Kotlin模块集成Firebase Crashlytics问题
我有一个多模块Android项目,包含app、core、auth、coreAndroid及多个功能模块。我尝试在纯Kotlin的core模块中添加Firebase Crashlytics,实现如下日志函数:
fun cLog(msg: String?){ FirebaseCrashlytics.getInstance().log(msg) }
供所有纯Kotlin模块(如网络模块)调用以记录错误信息。
按照官方文档操作后,仅能在Android模块中获取FirebaseCrashlytics实例。google-services.json文件位于app模块,我已尝试多种解决方案3天,但均无效。
我的gradle文件结构:有android-library-build.gradle和library-build.gradle分别作为Android模块和纯Kotlin模块的公共配置文件,各模块gradle内容如下:
app模块 build.gradle.kts
plugins { id("com.android.application") kotlin("android") kotlin("plugin.serialization") version Kotlin.version //"1.6.10" kotlin("kapt") id ("com.google.firebase.crashlytics") id ("com.google.gms.google-services") } ... dependencies { ... implementation (platform("com.google.firebase:firebase-bom:31.2.0")) implementation ("com.google.firebase:firebase-analytics-ktx") implementation ("com.google.firebase:firebase-crashlytics-ktx") }
项目根目录 build.gradle.kts
buildscript { val kotlin_version by extra("1.8.0") repositories { gradlePluginPortal() google() mavenCentral() } dependencies { ... // Dependency for the Google services Gradle plugin classpath("com.google.gms:google-services:4.3.15") // Dependency for the Crashlytics Gradle plugin classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.4") } }
android-library-build.gradle
apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'dagger.hilt.android.plugin' apply plugin: 'androidx.navigation.safeargs.kotlin' ... dependencies { ... implementation (platform("com.google.firebase:firebase-bom:31.2.0")) implementation ("com.google.firebase:firebase-analytics-ktx") implementation ("com.google.firebase:firebase-crashlytics-ktx") }
library-build.gradle
apply plugin: 'java-library' apply plugin: 'org.jetbrains.kotlin.jvm' dependencies{ ... implementation (platform("com.google.firebase:firebase-bom:31.2.0")) implementation ("com.google.firebase:firebase-analytics-ktx") implementation ("com.google.firebase:firebase-crashlytics-ktx") } apply { plugin("com.google.firebase.crashlytics") plugin("com.google.gms.google-services") }
core模块 build.gradle.kts
apply { from("$rootDir/library-build.gradle") } plugins { kotlin(KotlinPlugins.serialization) version Kotlin.version } dependencies { ... }
我已尝试的解决方案:
- 直接在core的build.gradle.kts中添加依赖和插件(包括使用platform依赖和单独依赖),未成功
- 将google-services.json文件复制到core模块
- 手动复制app/build/generated/res/google-services/debug/main/values/values.xml中生成的字符串到app模块的strings.xml,删除json文件及相关插件,仍无效
内容的提问来源于stack exchange,提问作者Theseus
相关产品推荐
相关产品推荐

