IntelliJ Idea 2020.2中的插件Lombok异常

问题描述

我们已经将Intellij更新为最新版本IntelliJ IDEA 2020.2(最终版)版本#IU-202.6397.94,该版本建于2020年7月27日。我们遇到以下错误

com.intellij.diagnostic.PluginException: Class constructor must not have parameters: de.plushnikov.intellij.plugin.settings.ProjectSettingsPage [Plugin: Lombook Plugin]
    at com.intellij.serviceContainer.ComponentManagerImpl.instantiateExtensionWithpicocontainerOnlyIfNeeded(ComponentManagerImpl.kt:694)
    at com.intellij.openapi.options.ConfigurableEP$Classproducer.createElement(ConfigurableEP.java:422)
    at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:329)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:45)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:94)
    at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:214)
    at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:267)
    at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:129)
    at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.lambda$getConfigurableGroup$1(ConfigurableExtensionPointUtil.java:119)
    at com.intellij.openapi.util.ClearableLazyValue$2.compute(ClearableLazyValue.java:26)
    at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:39)
    at com.intellij.openapi.util.AtomicclearableLazyValue.getValue(AtomicclearableLazyValue.java:9)
    at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.<init>(EpBasedConfigurableGroup.kt:113)
    at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:118)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:129)
    at de.plushnikov.intellij.plugin.activity.LombokProjectValidatorActivity$SettingsopeningListener.hyperlinkActivated(LombokProjectValidatorActivity.java:177)
    at com.intellij.notification.NotificationListener$Adapter.hyperlinkUpdate(NotificationListener.java:23)
    at com.intellij.notification.EventLog$NotificationHyperlinkInfo.navigate(EventLog.java:595)
    at com.intellij.execution.impl.EditorHyperlinkSupport.lambda$getLinkNavigationRunnable$0(EditorHyperlinkSupport.java:155)
    at com.intellij.execution.impl.EditorHyperlinkSupport$1.mouseReleased(EditorHyperlinkSupport.java:82)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.runMouseReleasedCommand(EditorImpl.java:3867)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:3771)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6650)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
    at java.desktop/java.awt.Component.processEvent(Component.java:6415)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5025)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
    at java.desktop/java.awt.Lightweightdispatcher.retargetMouseEvent(Container.java:4918)
    at java.desktop/java.awt.Lightweightdispatcher.processMouseEvent(Container.java:4547)
    at java.desktop/java.awt.Lightweightdispatcher.dispatchEvent(Container.java:4488)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultdispatchEvent(IdeEventQueue.java:967)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:904)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:836)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:450)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:744)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:449)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:802)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:503)
    at java.desktop/java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:203)
    at java.desktop/java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:124)
    at java.desktop/java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:113)
    at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:109)
    at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:101)
    at java.desktop/java.awt.EventdispatchThread.run(EventdispatchThread.java:90)

但是以前的IntelliJ版本也可以使用。任何建议都会很有帮助。

解决方法

只需在https://confluence.jetbrains.com/display/IDEADEV/IDEA+2020.2+latest+builds

上获取最新的Intellij 2020.2 RC版本(可修复此错误)。

请注意还要安装最后的lombok intellij插件(0.30.1)。

此问题已在https://github.com/mplushnikov/lombok-intellij-plugin/issues/649上进行了详细说明,而不是完全由插件引起的(这就是必须同时安装intellij RC的原因)

显然,在等待最终的Intellij 2020.2.1版本时,应该首选此解决方案。

有关https://youtrack.jetbrains.com/issue/IDEA-248146的更多详细信息(用于修复的最低构建版本是IntelliJ IDEA 2020.2.1 RC Build#IC-202.6948.36,构建于2020年8月18日)