在 Intellij 中更新 Kotlin 后在 Eclipse 中运行应用程序时出错

Posted

技术标签:

【中文标题】在 Intellij 中更新 Kotlin 后在 Eclipse 中运行应用程序时出错【英文标题】:Error run a application in eclipse after update Kotlin in Intellij 【发布时间】:2020-06-29 19:05:12 【问题描述】:

我有一个在 Eclipse 中开发的 Kotlin 和 Spring Boot 应用程序;我记得做的最后一个更改是在 IntelliJ 中更新 Kotlin,现在当我尝试在 Eclipse 中运行我的应用程序时,控制台显示以下错误:

No Location
    EXCEPTION: java.lang.NoSuchMethodError: com.intellij.openapi.util.text.StringUtil.internEmptyString(Ljava/lang/String;)Ljava/lang/String;
    at com.intellij.psi.impl.cache.TypeInfo.internFrequentType(TypeInfo.java:269)
    at com.intellij.psi.impl.compiled.ClsJavaCodeReferenceElementImpl.<init>(ClsJavaCodeReferenceElementImpl.java:49)
    at com.intellij.psi.impl.compiled.ClsAnnotationImpl$1.compute(ClsAnnotationImpl.java:47)
    at com.intellij.psi.impl.compiled.ClsAnnotationImpl$1.compute(ClsAnnotationImpl.java:40)
    at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37)
    at com.intellij.psi.impl.compiled.ClsAnnotationImpl.getNameReferenceElement(ClsAnnotationImpl.java:106)
    at org.jetbrains.kotlin.load.java.structure.impl.JavaAnnotationImpl.resolvePsi(JavaAnnotationImpl.java:84)
    at org.jetbrains.kotlin.load.java.structure.impl.JavaAnnotationImpl.getClassId(JavaAnnotationImpl.java:51)
    at org.jetbrains.kotlin.load.java.structure.JavaElementsKt$buildLazyValueForMap$1.invoke(javaElements.kt:65)
    at org.jetbrains.kotlin.load.java.structure.JavaElementsKt$buildLazyValueForMap$1.invoke(javaElements.kt)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at org.jetbrains.kotlin.load.java.structure.impl.JavaPackageImpl.getAnnotationsByFqName(JavaPackageImpl.kt)
    at org.jetbrains.kotlin.load.java.structure.MapBasedJavaAnnotationOwner$DefaultImpls.findAnnotation(javaElements.kt:59)
    at org.jetbrains.kotlin.load.java.structure.impl.JavaPackageImpl.findAnnotation(JavaPackageImpl.kt:25)
    at org.jetbrains.kotlin.load.java.components.JavaAnnotationMapper.findMappedJavaAnnotation(JavaAnnotationMapper.kt:72)
    at org.jetbrains.kotlin.load.java.lazy.LazyJavaAnnotations.iterator(LazyJavaAnnotations.kt:40)
    at org.jetbrains.kotlin.load.java.lazy.ContextKt.computeNewDefaultTypeQualifiers(context.kt:245)
    at org.jetbrains.kotlin.load.java.lazy.ContextKt$childForClassOrPackage$1.invoke(context.kt:223)
    at org.jetbrains.kotlin.load.java.lazy.ContextKt$childForClassOrPackage$1.invoke(context.kt)
    at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)

它以以下消息结束: Error: Could not find or load main class Main mx.job.project.config.AplicacionConfigKt

谢谢!!

【问题讨论】:

Java 路径显然在 Eclipse 中设置正确并且工作正常(执行“Hello world”不会引发错误)。我已经重新安装了 Eclipse、Java、IntelliJ,但它没有工作。我从 Git 再次下载了该项目,但它不起作用。有什么想法吗? 不,该项目在 intelliJ 或 Eclipse 中不起作用,但我已经返回到它所做的提交。所以我已经放弃了它是项目,如果不是我没有注意到的一些配置。 【参考方案1】:

首先,我已经关闭了所有项目。 然后我在 Eclipse Marketplace 站点卸载了 Kotlin Plugin for Eclise。然后通过直接使用更新站点安装以前版本的老式方式:

https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/0.8.19/

重启 Eclipse 后一切正常。

【讨论】:

【参考方案2】:

我已安装 Eclipse(2020-03)Kotlin 插件 (0.8.20),但在执行项目时收到错误消息。

我解决了当我卸载 Kotlin 插件 0.8.20 并安装 0.8.19 时,我相信这是 kotlin plugin for eclipse 中的一个错误。

https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/

【讨论】:

非常感谢,它对我有用。我描述了如何安装它,以防它对某人有用。要从 URL 安装插件,请转到 Help > Install New Software,将 URL 粘贴到 Work with 部分并继续安装。【参考方案3】:

我正在使用 Spring Boot + Kotlin(Java 中的一些控制器/映射器/类和 Kotlin 中的其他控制器)开发一个项目,在尝试了很多方法之后,唯一有效的是使用 Eclipse 03-2020 + Kotlin Eclipse V0.8.19 插件。

【讨论】:

以上是关于在 Intellij 中更新 Kotlin 后在 Eclipse 中运行应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 2021.1的新增功能, 版本更新说明

在 IntelliJ 中运行多平台 Kotlin 测试会产生 No JDK specified 错误

在 kotlin 的 intellij Android Studio 中禁用 Wild Cart 导入

如何在IntelliJ IDEA中禁用“粘贴时将Java转换为Kotlin”?

Simple Intellij Kotlin项目无法识别LinkedHashMap或其他集合

Intellij IDEA 未在 Kotlin 文件中显示有关 android 资源的可用建议