Почему я получаю сообщение «Неразрешенная ссылка: платформа» при использовании зависимости firebase-bom с KMM

Когда я пытаюсь добавить зависимость Firebase-bom, используя следующий блок в общем модуле проекта Kotlin Multiplatform Mobile (KMM), слово platformотображается в красном тексте ошибки, и сборка Gradle завершается ошибкой с сообщением «Неразрешенная ссылка: платформа». Как я могу решить эту проблему, чтобы она строилась правильно?

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

1 ответ

Ответ кроется в КТ-40489.

В platform() функция, используемая для импорта спецификации Firebase, недоступна в многоплатформенном плагине Kotlin. KotlinDependencyHandler но только в стандарте Gradle DependencyHandler. Также не похоже, что исправление скоро появится. В результате вам нужно явно указать обработчик Gradle.

Вот два обходных пути:

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

ИЛИ ЖЕ

      val androidMain by getting {
    dependencies {
        "jvmMainImplementation"(platform("...))
    }
}
Другие вопросы по тегам