Я разрабатываю мультиплатформенный проект kotlin, в котором есть куча модулей.
Я написал функцию расширения, которая предназначена для использования внутри каждого модуля. Функция расширения расширяет функциональность класса KotlinMultiplatformExtension
. Теперь этот код повторяется в файле build.gradle.kts каждого модуля. Поэтому я подумал, что было бы здорово переместить этот код в модуль buildSrc и использовать его везде.
Проблема в том, что внутри buildSrc модуль KotlinMultiplatformExtension
не разрешен.
Мой buildSrc/build.gradle.kts:
plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}
Если я щелкну правой кнопкой мыши KotlinMultiplatformExtension
внутри someModule/build.gradle.kts
мне нужно:
Поэтому я предположил, что добавление зависимости внутри buildSrc/build.gradle.kts должно помочь:
dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
}
Но добавление этого приводит к ошибке:
* Exception is:
java.lang.NoClassDefFoundError: com/android/build/gradle/BaseExtension
at org.jetbrains.kotlin.gradle.plugin.AbstractAndroidProjectHandler.configureTarget(KotlinPlugin.kt:765)
at org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin$Companion.applyToTarget(KotlinPlugin.kt:727)
at org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin.apply(KotlinPlugin.kt:689)
at org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin.apply(KotlinPlugin.kt:678)
at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper.apply(KotlinPluginWrapper.kt:102)
Есть идеи, как сделать KotlinMultiplatformExtension
доступным внутри buildSrc?