Kotlin gradle 无法初始化类 org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt
Posted
技术标签:
【中文标题】Kotlin gradle 无法初始化类 org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt【英文标题】:Kotlin gradle Could not initialize class class org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt 【发布时间】:2020-07-05 02:17:52 【问题描述】:我尝试使用 gradle 将 Kotlin 转换为 Js。当我从https://www.codeflow.site/fr/article/kotlin-javascript 运行示例时,出现错误: 无法初始化来自 build.gradle 的 apply plugin: 'kotlin2js' 行的类 org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt .
我不知道缺少的类是什么以及为什么 kotlin2js 要求它。有什么建议吗?
【问题讨论】:
【参考方案1】:通过在 build.gradle 文件中设置最新的 Kotlin 版本 (1.3.72) 解决了这个问题。
buildscript
ext
kotlinVersion = '1.4.20'
springBootVersion = '2.0.4.RELEASE'
repositories
mavenCentral()
...
【讨论】:
这令人困惑:您可能根本不使用 kotlinVersion 变量,而是在其类路径行中硬编码版本号。我认为正确的答案至少应该包括类路径行。 有很多方法可以声明要使用哪个 Kotlin 版本,它可以是类路径中的插件版本,如 "classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 或硬编码 "类路径 "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72" 或者它可以是插件会话中的 "kotlin("jvm") 版本 "1.3.72"。最重要的是旧的 Kotlin 版本(低于 1.3 .72 在我的情况下)号码是导致问题的原因。【参考方案2】:我也遇到了同样的问题。在 Windows 上,我使用 gradle -v
从命令行检查了 kotlin 版本,然后调整了我项目的 build.gradle 中的 kotlin 版本,以匹配我的 gradle
版本。
我希望这对你也有用。
【讨论】:
答案意味着您应该在grade-project 中更新kotlin_version
,而不是grade-app。【参考方案3】:
就我而言,它解决了问题:
buildscript
ext.kotlin_version = "1.3.72"
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:4.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
设置ext.kotlin_version = "1.3.72"
和
$kotlin_version
【讨论】:
【参考方案4】:是的,正如许多人之前所说,问题可能是您的 kotlin 版本不匹配。但是怎么知道安装的是什么版本的kotlin呢?
要了解您的 kotlin 版本: 设置 -> 语言和框架 -> Kotlin
确保将您的 kotlin 版本(在两个 build.gradle 文件中!)更改为这个确切的数字。在我的情况下(上图)它是 1.4.10
祝你好运!
【讨论】:
【参考方案5】:在 Android Studio 中: 文件 -> 项目结构 -> 变量
将kotlin_version
编辑为例如1.3.72
Gradle 应该自动重新同步,否则手动重新同步
【讨论】:
【参考方案6】:在您的 gradle.properties 文件中更新您的版本。例如)kotlinVersion=1.3.72
【讨论】:
【参考方案7】:最简单的解决方案:
转到file -> project structure (ctrl+shift+alt+s) -> suggestions -> accept all the suggestions.
要回答OP的问题,您只需要接受kotlin version
的问题
【讨论】:
【参考方案8】:这似乎是 Building Kotlin projects with Gradle sometimes fails with NoClassDefFoundError 中解释的不同 Ktlin 版本的问题
【讨论】:
【参考方案9】:我不知道我是否可以像 KP7984 所说的那样做 - 检查我的 Android Studio 插件的版本,而不是我的操作系统的插件版本。我使用项目的gradlew -v
而不是gradle -v
,它对我有用。
【讨论】:
如果在尝试回答本页顶部的问题时无法阅读本文。这里隐藏了一些洞察力,但很多读起来像“我需要......”,“我的问题......”,“不能使用其他答案......”。所有这些都不是这里的答案。那么,请您edit 并专注于帮助回答此问题的部分吗?任何不属于答案的内容,您都可以在自己的帖子中发表评论。【参考方案10】:在您的build.gradle
文件中,如果您将鼠标悬停在classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
上,它将根据您的SDK/插件版本,在文件顶部的kotlinVersion
变量中告诉您必须使用哪个版本的Kotlin .
【讨论】:
以上是关于Kotlin gradle 无法初始化类 org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImplKt的主要内容,如果未能解决你的问题,请参考以下文章
无法解析 org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10
Gradle 错误:无法初始化类 org.codehaus.groovy.runtime.InvokerHelper
Gradle kotlin Springboot多模块导致无法引用kotlin的类文件(BootJar)
Gradle kotlin Springboot多模块导致无法引用kotlin的类文件(BootJar)