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.gradleapply 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)

QueryDSL:使用 Kotlin 和 Gradle 生成类失败

如何将 kotlin 类添加到 gradle JavaCompile 任务