2

我有一个 Android 项目,使用用 kotlin-dsl 编写的 Gradle 构建配置并尝试应用 Dynatrace:

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath("com.dynatrace.tools:android:7.2.4.1262")
  }
}

// I apply the plugin
apply(plugin = "com.dynatrace.tools.android")

一切运行顺利,直到我尝试使用 dynatrace 配置块,这永远无法解决:

dynatrace {
    defaultConfig {
       ....
    }
}

这是我正在使用的环境:

  • 摇篮:5.1.1
  • Android Gradle 插件:3.4.1
  • 动态跟踪版本:7.2.4.1262

我按照Dynatrace 自己的说明进行操作,尽管他们没有提及如何使用 kotlin-dsl 执行配置,但他们只是添加了对它的支持

任何帮助,将不胜感激。

4

2 回答 2

1

我已经用applyDSL 试过了,但没有用。我让它通过pluginsDSL 应用插件。

顶级build.gradle.kts

buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.5.0-beta01")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31")
        classpath("com.dynatrace.tools:android:7.2.4.1262")
    }
}

allprojects {
    repositories {
        google()
        jcenter()  
    }
}

应用build.gradle.kts

plugins {
    id("com.android.application")
    kotlin("android")
    id("com.dynatrace.tools.android")
    ...
}

android {
    defaultConfig {
        ...
    }
    buildTypes {
        ...
    }
}

dynatrace {
    defaultConfig {
        ...
    }
}

dependencies {
    ...
}

于 2019-06-03T17:57:02.647 回答
0

我在尝试将 build.gradle 迁移到 KTS 时遇到了同样的问题(上面有 dynatrace 配置)。我在 Dynatrace 网站上找到正确的文档时遇到了一些问题,但最后我找到了它(https://www.dynatrace.com/support/help/how-to-use-dynatrace/real-user-monitoring/setup- and-configuration/mobile-apps/instrument-android-app/instrumentation-via-plugin/instrumentation-via-plugin/#tabgroup-android-gradle-plugin--groovy

在我的情况下,顶级 build.gradle.kts解决方案:

buildscript {
  repositories {
        google()
        mavenCentral()
  }
  dependencies {
    classpath("com.dynatrace.tools.android:gradle-plugin:8.207.1.1004")
  }
}

apply(plugin = "com.dynatrace.instrumentation")
configure<com.dynatrace.tools.android.dsl.DynatraceExtension> {
    configurations {
        create("prod") {
            variantFilter("[rR]elease")
            autoStart {
                applicationId("xxx")
                beaconUrl("yyy")
            }
            userOptIn(true)
            userActions.timeout(5000)
        }
        create("debug") {
            autoStart {
                applicationId("aaa")
                beaconUrl("bbb")
            }
            userOptIn(true)
            userActions.timeout(5000)
        }
    }
}


于 2021-07-28T11:37:36.460 回答