gpt4 book ai didi

java - 如何在 E4 中使用 Eclipse 3.x View ?

转载 作者:行者123 更新时间:2023-11-30 11:04:14 25 4
gpt4 key购买 nike

我有 Eclipse 3.x 开发经验,现在想开发 E4 应用程序。因此,我测试了一个简单的示例,以便开始使用新事物。

我正在关注 this tutorial一步一步,但它会导致相同的错误。但是,他没有收到这些错误。

我正在使用 Eclipse Luna (4.4.2) 并安装了 E4 Tools (0.17) .我创建了一个新的 Eclipse 4 应用程序,并使用 Import 3x -> View as CompatibilityView 添加到 Application.e4xmi Common Resource Navigator (Project Explorer) 作为Shared Part。然后我添加了一个引用共享部分的占位符。我已将所有必要的插件添加到产品的依赖项中。我还添加了兼容性插件。

但是,当我启动应用程序时,我在 InjectorImpl#internalMake()#331 处收到了一个 InjectionException,它只是:

if (unresolved(actualArgs) != -1) continue;

调试 unresolved() 让我想到以下几点(InjectorImpl#489):

Creatable creatableAnnotation = desiredClass.getAnnotation(Creatable.class);

desiredClassorg.eclipse.ui.internal.ViewReference 类。然后函数返回 1 导致继续大写和异常。堆栈跟踪如下 ( full here ):

!ENTRY org.eclipse.e4.ui.workbench 4 0 2015-05-06 13:00:05.899
!MESSAGE Unable to create class 'org.eclipse.ui.internal.e4.compatibility.CompatibilityView' from bundle '96'
!STACK 0
org.eclipse.e4.core.di.InjectionException: Could not find satisfiable constructor in org.eclipse.ui.internal.e4.compatibility.CompatibilityView
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:346)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
...

最佳答案

为了解决这个问题,我不得不按照this awesome tutorial .正如 @greg-449 已经提到的,您必须使用 3.x RCP 并在其上放置一个e4 感知 产品。然后将初始化兼容层。因此,您必须执行以下操作(教程中有详细描述):

  1. Eclipse 3.5 或更新版本创建一个 Eclipse 插件
  2. 勾选 Will make contributions to the UI
  3. 使用Hello World RCP 生成所需的扩展点
  4. Ctrl+N -> Eclipse 4 -> 模型 -> 新建应用程序模型
  5. 添加一个扩展点
  6. Ctrl+N -> 插件开发 -> 产品配置

其余部分在链接教程中进行了描述。 不要忘记将-clearPersistedState 添加到产品的启动选项中。所以你会看到你的应用程序模型的增量。如果您打算使用基于功能的产品,您应该创建一个功能插件,它引用您的 RCP 插件并将其添加为产品的依赖项。因此,您不必按照教程中的描述更改运行配置。

关于java - 如何在 E4 中使用 Eclipse 3.x View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30092827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com