【发布时间】:2021-05-06 11:23:15
【问题描述】:
我正在开发一个 kotlin 多平台项目,其中包含一堆模块。
我写了一个扩展函数,打算在每个模块中使用。扩展函数扩展了KotlinMultiplatformExtension 类的功能。现在该代码在每个模块的 build.gradle.kts 文件中重复。所以我认为将代码移动到 buildSrc moudle 并在任何地方重用会很棒。
问题是 buildSrc 模块 KotlinMultiplatformExtension 内部没有解决。
我的buildSrc/build.gradle.kts:
plugins {
`kotlin-dsl`
}
repositories {
jcenter()
}
如果我在 someModule/build.gradle.kts
中右键单击KotlinMultiplatformExtension
它需要我:
所以我猜想在 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 中可用?
【问题讨论】:
标签: kotlin gradle kotlin-multiplatform kotlin-dsl kotlin-gradle-plugin