【问题标题】:Error compiling in IntelliJ IDEA: "No MessageCollector"在 IntelliJ IDEA 中编译时出错:“No MessageCollector”
【发布时间】:2018-10-01 15:04:31
【问题描述】:

编辑:已解决。查看@acdsee 的评论以了解如何

由于我从2017.3.5到2018.1更新了IntelliJ IDEA,所以我开始的每个项目都会抛出这个错误:

> Error:Module 'JBA' production: java.lang.Exception: LOGGING: Loading
> modules: [java.se, javafx.base, javafx.controls, javafx.fxml,
> javafx.graphics, javafx.media, javafx.swing, javafx.web,
> jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink,
> jdk.httpserver, jdk.incubator.httpclient, jdk.jartool, jdk.javadoc,
> jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject,
> jdk.management, jdk.management.cmm, jdk.management.jfr,
> jdk.management.resource, jdk.net, jdk.packager, jdk.packager.services,
> jdk.scripting.nashorn, jdk.sctp, jdk.security.auth, jdk.security.jgss,
> jdk.unsupported, jdk.xml.dom, oracle.desktop, oracle.net, java.base,
> java.compiler, java.datatransfer, java.desktop, java.xml,
> java.instrument, java.logging, java.management, java.management.rmi,
> java.rmi, java.naming, java.prefs, java.scripting, java.security.jgss,
> java.security.sasl, java.sql, java.sql.rowset, java.xml.crypto,
> jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent,
> jdk.internal.ed, jdk.internal.le, jdk.internal.opt, jdk.jlink] (no
> MessageCollector configured)

【问题讨论】:

  • 欢迎来到 SO。请查看此处了解如何改进您的问题(格式化、校对、提供代码等):stackoverflow.com/help/how-to-ask
  • 看到同样的事情。使用 IntelliJ 2018.1.1、JDK 9.0.4+11 和 Kotlin 1.2.40。如果我进行更改并点击构建,我会看到上面的错误。如果我从头开始清理和重建它可以工作,但这是一个乏味的解决方法。
  • 我遇到了同样的问题。在我的情况下,手动检测 out 文件夹有帮助。希望这对你也有帮助。
  • 我遇到了同样的问题。似乎是由 kotlin 插件 1.2.40 引起的。回滚插件到 1.2.31。问题消失了

标签: java intellij-idea compiler-errors kotlin java-9


【解决方案1】:

我在使用 Kotlin 1.2.40 和 Java JDK 10 时遇到了同样的问题。每次更改代码后,我都必须重新构建整个项目以消除编译错误。删除 out 文件夹确实有帮助,直到下一次更改。我一直在寻找将 Kotlin 插件降级到以前版本的方法,但找到了更好的解决方案。

我的 IDEA 项目没有 Gradle,我可以通过将 Gradle 添加到项目中来解决问题。

只需关闭项目,将以下文件“build.gradle”放到根文件夹,然后在IntelliJ IDEA中重新导入项目。

我的 build.gradle 文件看起来是这样的:

buildscript {
    ext.kotlin_version = '1.2.40'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'

sourceSets {
    main.java.srcDirs += 'src'
}

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}

它现在与插件版本 1.2.40 一起工作得很好。无需降级到以前的版本。

【讨论】:

  • 我有一个与这个基本相同的 Gradle 文件,但我仍然必须每次都删除 out 目录。
  • 按照@Tuno 发布的错误跟踪,它看起来已经修复,并将在 Kotlin 1.2.41 中消失。
  • 最后,Kotlin 1.2.41 于 4 小时前发布。
【解决方案2】:

将 cmets 中的答案提升为答案,因为它是实际答案:

这似乎是 IntelliJ Kotlin 插件 v1.2.40 中的一个错误,以及它如何与 Java 10 交互。请参阅 here。解决办法是升级到v1.2.41。

(不要像其他答案所建议的那样仅仅因为插件坏了就将您的项目切换到使用 Gradle 构建。这很奇怪。)

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    相关资源
    最近更新 更多