Как настроить расширение плагина Firebase Performance Monitoring в Gradle Kotlin DSL - PullRequest
3 голосов
/ 23 марта 2020

У меня есть приложение Android, использующее Gradle с Kotlin DSL. Я добавляю мониторинг производительности Firebase, но хотел бы, чтобы он был включен только для определенного типа сборки c.

Я следовал инструкциям, приведенным в Firebase - Отключить производительность Firebase Мониторинг . К сожалению, предоставленные фрагменты находятся в Groovy.

Я попытался получить ссылку на расширение мониторинга производительности Firebase в моем скрипте Gradle уровня приложения, выполнив следующие действия:

    plugins {
        ...
        id("com.google.firebase.firebase-perf")
        kotlin("android")
        kotlin("android.extensions")
        kotlin("kapt")
    }

    buildTypes {
        getByName(BuildTypes.DEBUG) {
            configure<com.google.firebase.perf.plugin.FirebasePerfExtension> {
                setInstrumentationEnabled(false)
            }
        }
        ...
    }

    ...

    dependencies {
        val firebaseVersion = "17.2.1"
        implementation("com.google.firebase:firebase-core:$firebaseVersion")
        implementation("com.google.firebase:firebase-analytics:$firebaseVersion")
        implementation("com.google.firebase:firebase-perf:19.0.5")
    }

Android Studio не видит никаких проблем в этом и автоматически завершает FirebasePerfExtension. К сожалению, после запуска Gradle Syn c я получаю следующее:

Extension of type 'FirebasePerfExtension' does not exist. 
Currently registered extension types: [ExtraPropertiesExtension, DefaultArtifactPublicationSet, ReportingExtension, SourceSetContainer, JavaPluginExtension, NamedDomainObjectContainer<BaseVariantOutput>, BaseAppModuleExtension, CrashlyticsExtension, KotlinAndroidProjectExtension, KotlinTestsRegistry, AndroidExtensionsExtension, KaptExtension]

Расширение плагина не связано с мониторингом производительности Firebase.

Это в моем файле build.gradle уровня проекта dependencies блок:

classpath("com.google.firebase:perf-plugin:1.3.1")

Любая помощь приветствуется!

Обновление 1

В соответствии с рекомендациями Gradle - Миграция сборок c из Groovy в Kotlin руководство в разделе "Знание" какие расширения доступны для плагинов "Я выполнил задачу kotlinDslAccessorsReport. Похоже, ни одно из полученных расширений не связано с Firebase.

1 Ответ

3 голосов
/ 15 апреля 2020

Была та же проблема и собиралась применить из groovy файла, но, кажется, я нашел решение здесь: https://docs.gradle.org/5.0/userguide/kotlin_dsl.html#sec: совместимость

withGroovyBuilder {
   "FirebasePerformance" {
       invokeMethod("setInstrumentationEnabled", false)
    }
}
...