解决异常java.lang.ClassCastException:org.jetbrains.kotlin.psi.KtFile

时间:2018-03-22 12:50:32

标签: gradle intellij-idea kotlin intellij-plugin

我正在为Intellij Idea编写一个插件,其主要思想是将Kotlin类的结构作为:属性,方法等。 在我的 plugin.xml 中,我添加了以下行<depends>org.jetbrains.kotlin</depends>

作为访问类KtVisitor的库,我添加了以下库: org.jetbrains.kotlin:kotlin-compiler:1.2.30

所有东西都在编译异常,当我运行代码并听取操作时,我收到以下错误: java.lang.ClassCastException: org.jetbrains.kotlin.psi.KtFile cannot be cast to com.intellij.psi.PsiFile

负责听取行动的矿类如下:

class ConvertAction: AnAction(), DumbAware {
override fun actionPerformed(event: AnActionEvent?) {
    val psiFile = event?.getData(PlatformDataKeys.PSI_FILE)
    val s = true
}}

感谢任何帮助如何解决此问题。谢谢。

1 个答案:

答案 0 :(得分:1)

发生ClassCastException因为IDEA加载了两个Kotlin插件类副本,一个来自实际的Kotlin插件,另一个来自你提供的kotlin-compiler.jar。添加插件依赖项的正确方法是将以下内容添加到build.gradle

intellij {
    plugins 'org.jetbrains.kotlin'
}