无法访问脚本基类 'org.gradle.kotlin.dsl.KotlinBuildScript'。

68
当我使用Gradle Kotlin DSL创建一个空项目时,即使没有进行任何修改,它也会提示“Cannot access script base class 'org.gradle.kotlin.dsl.KotlinBuildScript'. Check your module classpath for missing or conflicting dependencies” 。该项目可以运行,但是build.gradle.kts的语法高亮和自动完成功能不起作用。

我尝试过的方法

系统

IntelliJ IDEA 2020.3.1 (Ultimate Edition)
Build #IU-203.6682.168, built on December 29, 2020
Licensed to Hykilpikonna Gui
Subscription is active until November 28, 2021.
For educational use only.
Runtime version: 11.0.9.1+11-b1145.63 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.15.7
GC: ParNew, ConcurrentMarkSweep
Memory: 1998M
Cores: 6
Registry: debugger.watches.in.variables=false, js.debugger.webconsole=false
Non-Bundled Plugins: CMD Support, Rider UI Theme Pack, Statistic, com.alayouni.ansiHighlight, com.intellij.ideolog, net.vektah.codeglance, String Manipulation, com.alibaba.p3c.smartfox, wu.seal.tool.jsontokotlin, com.demonwav.minecraft-dev, lermitage.intellij.extra.icons, com.github.masahirosuzuka.PhoneGapIntelliJPlugin, Dart, io.flutter, deno, org.jetbrains.kotlin, com.cybrosis.catdea, siosio.kodkod, izhangzhihao.rainbow.brackets, org.jetbrains.plugins.ruby, Pythonid, org.jetbrains.plugins.vue, tv.twelvetone.intellij.plugins.intellivue, ru.meanmail.plugin.requirements

1
按照 https://youtrack.jetbrains.com/issue/IDEA-245027 中的描述,手动删除 IDEA 缓存是否有帮助? - Alexey Belkov
@AlexeyBelkov 很抱歉它没有帮助。我尝试了无效缓存和手动删除文件夹。在它索引了几分钟后,问题仍然存在。感谢您的评论。 - Hykilpikonna
1
还可以尝试删除所有Gradle缓存(/home/.gradle)来帮助解决问题。 - Alexey Belkov
请关注此问题,https://youtrack.jetbrains.com/issue/KTIJ-17923 检查项目结构JDK。 - Cyber Avater
16个回答

56

感谢 @AlexeyBelkov 提供答案 - 答案来源: https://youtrack.jetbrains.com/issue/KTIJ-893

以下是使语法高亮功能生效的步骤:

  1. 删除 ~/.gradle/caches
  2. 删除 ~/Library/Application\ Support/Library/JetBrains/IntelliJIdea2020.3(ubuntu/linux 用户则为 ~/.cache/JetBrains/IntelliJIdea2020.3
  3. 删除 <project dir>/.gradle
  4. 删除 <project dir>/.idea
  5. 启动 IDEA 并重新导入项目。

10
删除 C:\Users<you>\AppData\Local\JetBrains\IntelliJIdea2021.1\caches 可以解决问题。 - Michael Böckling
4
做完这件事情之后,有所改善,但我仍然看到所有的KTS文件都是“红色”的。 对于Android Studio,解决方案是: 我进入: File -> Project Structure -> SDK Location -> "JDK Location"文本框:将默认的“内嵌JDK”替换为单独下载的Open JDK 11的路径,问题得到了解决。 更多信息:https://youtrack.jetbrains.com/issue/KT-41141 - yvolk
1
我所要做的就是按照@yvolk上面所描述的更新JDK。其他建议(虽然在这种情况下通常很有帮助)并不是问题所在。 - arberg
2
针对AndroidStudioPreview2021.1,删除~/Library/Caches/Google/AndroidStudioPreview2021.1/caches即可。 - a.r.
我喜欢你(目前已删除的)提交计数建议。别忘了添加自Git 2.34以来的选项--unsorted-input,以获得更快的结果。 - VonC
显示剩余5条评论

17
在我的情况下(操作系统是Windows 10),只需要执行以下步骤即可:
  1. 删除 C:\Users\<you>\AppData\Local\JetBrains\IntelliJIdea2021.1\caches
  2. 重启 IntelliJ IDEA。
  3. 在重新索引后出现“Load Script Configurations”时点击它。
感谢 @MichaelBöckling 的提示!

哇,这解决了我的问题。还需要在“项目结构”对话框中设置JDK。 - abd3lraouf

16

1
这应该被标记为答案,清除缓存只能暂时解决问题。 - Calin
是的,这是正确的 - 配置文件夹需要清理,其他答案没有提到这一点。 - user2297550
在所有清除缓存等操作都失败后,简单地重命名 jdk.table.xml 就解决了问题。(注意:由于某些原因,我没有删除 <project dir>/.idea 目录) - Harald
你救了我的命。 - Junerver
2
谢谢!我刚刚添加了一些关于路径的额外信息:{config_path}/options/jdk.table.xml - STAYER
另外,第三项设置已经不存在了(或者是我漏掉了什么?),但对于我来说,在通用IDE设置中选择JDK作为Gradle的选项(设置 -> 构建和执行 -> Gradle),然后再切换回你需要的选项(例如,从jdk 1.8切换到jdk 11)就可以解决问题了。 - Den Drobiazko

11

Mac OS:

  1. 打开File菜单 -> Project Structure -> SDK Location -> 点击Gradle Settings
  2. 修改Gradle JDK
  3. 打开File菜单 -> Invalidate Caches...

图片描述

图片描述


2
这个在Windows上对我起作用了!感谢提示。 - Mohsen Mirhoseini
运作得非常顺利! - undefined

4

在我删除以下内容后,它对我有用:

Delete <project dir>/.gradle
Delete <project dir>/.idea

3

指导式缓存恢复 (IntelliJ IDEA 2021.3+)

从 IntelliJ IDEA 2021.3 开始(截至撰写本文,可在 JetBrain 的早期访问计划或 EAP 上获取),有一个名为“指导式缓存恢复”的功能(FileRun Guided Cache Recovery...)。虽然我还没有找到关于这个功能的任何文档,但它似乎可以让用户逐步应用诊断/恢复步骤来修复任何缓存问题。

对我而言,OP 报告的问题在第二步“重新扫描项目索引”时得以解决。

真正酷的是,它不仅解决了我的问题,而且 IntelliJ 还创建了一个包含有关发现的问题的详细信息的问题报告,并给了我通过崩溃报告器向 JetBrains 提交此报告的选项。这告诉我 JetBrains 看起来很认真地为用户解决这些问题,而且也很认真地解决它们的根本原因。

.idea、.gradle 或 gradle 中的权限问题

另一个可能出现的问题是 .idea.gradlegradle 目录中的权限问题。例如,在以 root 用户身份运行的 Docker 容器中挂载项目卷(例如运行 Qodana 这样的工具),可能会导致某些文件的所有者变为 root,除非使用适当的 Docker 选项。如果出现此问题,请使用 chmodchown 重置权限,然后在 IDEA 中再次同步。


2

我将项目SDK设置为Kotlin,路径为项目设置 > 模块。我还在平台设置 > SDKs中设置了SDK,尽管我不知道是否需要。为了确保,我使用文件 > 无效缓存/重启...重新启动了IntelliJ。

enter image description here


1
在我的情况下,我不得不在IntelliJ中设置Java版本 -> 设置 -> 构建 -> Gradle为1.8,以匹配项目的Java版本。

1
对于IntelliJ 2021.1,我不得不删除以下位置的缓存文件夹:
~/Libary/Caches/JetBrains/IntelliJIdea2021.1/caches


0
我使用的是IntelliJ IDEA 2023.2.3的社区版。 当我从https://start.spring.io/生成Gradle-Kotlin项目并选择Kotlin语言时,遇到了上述错误。 为了解决这个问题,我将Gradle更改为最新版本8.4,并将Kotlin("jvm")版本设置为"1.9.10",Kotlin("plugin.spring")版本设置为"1.9.10",这是最新版本。

enter image description here

enter image description here

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接