我有一个曾经与Eclipse Indigo,Kepler,Luna和Mars(4.5)合作的插件。它支持Frege编程语言(http://www.frege-lang.org/fregide/)。它基于IMP框架,遗憾的是,它不再维护(我没有源代码)。
今晚我检查了更新,它找到了Eclipse 4.5.1。 更新后,eclipse有一个花哨的新闪屏,上面写着“MARS.1”。
然而它不能再初始化插件了!
在错误日志中,我收到消息:
Plug-in "frege.ide" was unable to instantiate class "frege.imp.builders.FregeBuilder".
并且堆栈跟踪似乎表明某些方法已经从Eclipse API中消失了:
java.lang.NoSuchMethodError: org.eclipse.ui.internal.registry.FileEditorMapping.setDefaultEditor(Lorg/eclipse/ui/internal/registry/EditorDescriptor;)V
at org.eclipse.imp.language.LanguageRegistry.addUniversalEditorMappings(LanguageRegistry.java:393)
at org.eclipse.imp.language.LanguageRegistry.initializeRegistryAsNeeded(LanguageRegistry.java:268)
at org.eclipse.imp.language.LanguageRegistry.findLanguage(LanguageRegistry.java:206)
at frege.imp.builders.FregeBuilderBase.<clinit> (FregeBuilderBase.java:53)
...
以下是我的问题:
答案 0 :(得分:1)
setDefaultEditor
方法仍然存在于FileEditorMapping
中,但它现在需要IEditorDescriptor
个参数而不是EditorDescriptor
。这将导致NoSuchMethodError
。由于此类是内部类,因此不属于API,因此这是一个有效的更改。
根据IMP Wiki IMP项目已移至github project,您可以从那里获取最新代码(或至少获取源代码)。