You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级IntelliJ IDEA到2024.1.3后编译Maven项目触发Kotlin内部错误

IntelliJ IDEA升级至2024.1.3后Maven项目编译报Kotlin内部错误解决办法

将IntelliJ IDEA从2023.1.1升级到2024.1.3后,编译Maven项目时出现如下错误:

Kotlin: [Internal Error] java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY

完整堆栈跟踪信息(中文翻译):

Kotlin: [内部错误] java.lang.NoSuchFieldError: FILE_HASHING_STRATEGY
        at org.jetbrains.kotlin.jps.targets.KotlinJvmModuleBuildTarget.updateChunkMappings(KotlinJvmModuleBuildTarget.kt:362)
        at org.jetbrains.kotlin.jps.build.KotlinBuilder.doBuild(KotlinBuilder.kt:463)
        at org.jetbrains.kotlin.jps.build.KotlinBuilder.build(KotlinBuilder.kt:299)
        at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1609)
        at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1238)
        at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1389)
        at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1203)
        at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:971)
        at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:527)
        at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:236)
        at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:135)
        at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:387)
        at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:212)
        at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:211)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

错误原因

该问题源于IDE升级后,内置Kotlin版本与项目依赖的Kotlin插件、库版本不兼容。FILE_HASHING_STRATEGY字段在新版Kotlin JPS构建工具中已被移除或重命名,但项目依赖的旧版Kotlin代码仍在引用该字段,导致抛出找不到字段的错误。

解决步骤

  • 同步项目Kotlin版本与IDE内置版本:
    1. 通过File > Settings > Languages & Frameworks > Kotlin查看IDE内置的Kotlin版本号。
    2. 在项目pom.xml中更新所有Kotlin相关依赖和插件的版本,与IDE版本保持一致:
      <properties>
          <kotlin.version>1.9.23</kotlin.version> <!-- 替换为IDE内置的实际版本号 -->
      </properties>
      
      <dependencies>
          <dependency>
              <groupId>org.jetbrains.kotlin</groupId>
              <artifactId>kotlin-stdlib-jdk8</artifactId>
              <version>${kotlin.version}</version>
          </dependency>
      </dependencies>
      
      <build>
          <plugins>
              <plugin>
                  <groupId>org.jetbrains.kotlin</groupId>
                  <artifactId>kotlin-maven-plugin</artifactId>
                  <version>${kotlin.version}</version>
                  <executions>
                      <execution>
                          <id>compile</id>
                          <phase>compile</phase>
                          <goals>
                              <goal>compile</goal>
                          </goals>
                      </execution>
                  </executions>
              </plugin>
          </plugins>
      </build>
      
  • 清理并重新构建项目:执行Maven命令mvn clean install,同时在IDE中点击Build > Clean Project,随后重新编译项目。
  • 更新Kotlin插件:打开File > Settings > Plugins,搜索Kotlin插件,确保其为最新版本且与IDE版本匹配,更新后重启IDE。
  • 清除IDE缓存:通过File > Invalidate Caches...选择Invalidate and Restart,清除旧缓存文件以避免版本冲突。
  • 检查自定义JPS配置:若项目中存在自定义JPS构建配置,移除所有与FILE_HASHING_STRATEGY相关的配置项,确保配置适配新版Kotlin。

内容的提问来源于stack exchange,提问作者Jonathan Lalou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:23:26