为什么在 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("...))
    }
}