我正在开发一个kotlin多平台项目,它有许多模块。
我编写了一个扩展函数,用于每个模块中。扩展函数扩展了KotlinMultiplatformExtension类的功能。现在,这段代码在每个模块的build.gradle.kts文件中重复。因此,我认为将这些代码移到、buildSrc、和任何地方重用都是很棒的。
问题是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中可用
发布于 2021-02-02 09:54:17
原来改变
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
转到
compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
解决异常问题(java.lang.NoClassDefFoundError: com/android/build/gradle/BaseExtension)
并使KotlinMultiplatformExtension在buildSrc的源文件中可用。
在这里找到的解决方案:https://github.com/gradle/gradle/issues/9209
https://stackoverflow.com/questions/66007017
复制相似问题