将 firebase-bom 依赖项与 KMM 结合使用时,为什么会出现 "Unresolved reference: platform"

Why do I get "Unresolved reference: platform" when using the firebase-bom dependency with KMM

当我尝试在 Kotlin Multiplatform Mobile (KMM) 项目的共享模块中使用以下块添加 Firebase-bom 依赖项时,单词 platform 出现在红色错误文本中并且 Gradle构建失败并显示“未解析的引用:平台”。我该如何解决这个问题才能正确构建?

        val androidMain by getting {
            dependencies {
                implementation(platform("com.google.firebase:firebase-bom:28.0.1"))
                implementation("com.google.firebase:firebase-analytics-ktx")
            }
        }

答案就在KT-40489.

用于导入 Firebase 物料清单的 platform() 函数在 Kotlin Multiplatform 插件的 KotlinDependencyHandler 中不可用,但仅在 Gradle 的标准 DependencyHandler 中可用。似乎也不会很快出现修复。因此,您需要明确指定 Gradle 的处理程序。

这里有两个解决方法:

val androidMain by getting {
    dependencies {
        implementation(project.dependencies.platform("..."))
    }
}

val androidMain by getting {
    dependencies {
        "jvmMainImplementation"(platform("...))
    }
}