日蚀 4.5.1。 (MARS.1) 找不到方法:setDefaultEditor
Eclipse 4.5.1. (MARS.1) Method not found: setDefaultEditor
我有一个用于 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)
...
这是我的问题:
- 有谁知道为什么这个方法不见了?
- 如何限制我的插件只安装到 LUNA、KEPLER 和 INDIGO?
- 是否可以提供一个伪造的 setDefaultEditor 方法来执行现在必须执行的所有操作来为插件注册编辑器?
setDefaultEditor
方法在 FileEditorMapping
中仍然存在,但它现在采用 IEditorDescriptor
参数而不是 EditorDescriptor
。这将导致NoSuchMethodError
。由于此 class 是内部 class,因此不是 API 的一部分,因此这是一个有效的更改。
根据 IMP Wiki the IMP project has moved to a github project,您可以从那里获得最新代码(或至少获得源代码)。
我有一个用于 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)
...
这是我的问题:
- 有谁知道为什么这个方法不见了?
- 如何限制我的插件只安装到 LUNA、KEPLER 和 INDIGO?
- 是否可以提供一个伪造的 setDefaultEditor 方法来执行现在必须执行的所有操作来为插件注册编辑器?
setDefaultEditor
方法在 FileEditorMapping
中仍然存在,但它现在采用 IEditorDescriptor
参数而不是 EditorDescriptor
。这将导致NoSuchMethodError
。由于此 class 是内部 class,因此不是 API 的一部分,因此这是一个有效的更改。
根据 IMP Wiki the IMP project has moved to a github project,您可以从那里获得最新代码(或至少获得源代码)。