首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在KotlinMultiplatformExtension模块中导入buildSrc?

如何在KotlinMultiplatformExtension模块中导入buildSrc?
EN

Stack Overflow用户
提问于 2021-02-02 09:37:31
回答 1查看 768关注 0票数 2

我正在开发一个kotlin多平台项目,它有许多模块。

我编写了一个扩展函数,用于每个模块中。扩展函数扩展了KotlinMultiplatformExtension类的功能。现在,这段代码在每个模块的build.gradle.kts文件中重复。因此,我认为将这些代码移到、buildSrc、和任何地方重用都是很棒的。

问题是buildSrc模块KotlinMultiplatformExtension没有得到解决。

我的buildSrc/build.gradle.kts

代码语言:javascript
复制
plugins {
    `kotlin-dsl`
}
repositories {
    jcenter()
}

如果我右键单击someModule/build.gradle.kts中的KotlinMultiplatformExtension

我需要:

因此,我猜想在buildSrc/build.gradle.kts中添加一个依赖项应该会有所帮助:

代码语言:javascript
复制
dependencies {
    implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10")
}

但是添加结果会导致一个错误:

代码语言:javascript
复制
* 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)

如何使KotlinMultiplatformExtensionbuildSrc中可用

EN

回答 1

Stack Overflow用户

发布于 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)

并使KotlinMultiplatformExtensionbuildSrc的源文件中可用。

在这里找到的解决方案:https://github.com/gradle/gradle/issues/9209

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66007017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档