运行 e4 RCP 在 GTK2 上的应用

Running e4 RCP application on GTK2

这个问题是我 attempts 在最近的 Linux 发行版上制作 e4 rcp 应用程序 运行 的延续。

我正在使用以下选项启动我的 RCP 应用程序:

--launcher.GTK_version 
2

第一次 启动失败,我花了一段时间才找出原因 - 缺少 xmi 文件:

.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi

如何在没有此文件的情况下首次加载 workbench?
绝对没有关于加载失败的位置和原因的痕迹。

workbench.xmi是在应用程序第一次关闭时产生的。而且我第一次没有机会。我通过在没有 --launcher.GTK_version 2 开关的情况下 运行 应用程序手动生成此文件。然后有了这个文件就可以使应用程序 运行 与 GTK2 兼容。这就是我想要实现的目标。

任何关于如何克服这个先有鸡还是先有蛋的问题的帮助将不胜感激。

我发现了问题,这是我在 WorkbenchWindowAdvisor.preWindowOpen() 中做一些非法事情的应用程序的内部问题。一旦我将 'criminal' 代码移动到 WorkbenchWindowAdvisor.postWindowOpen(),问题就消失了。我仍然不知道为什么 workbench.xmi 文件有这样的副作用,但它不再相关了。

提醒一下,我们试图强制 e4 RCP 应用程序退回到 GTK2,因为到目前为止 SWT 和 GTK3 充满了错误,很难理解谁是谁。坦率地说,我认为像 neon 这样的版本不应该发布给 public 使用。

帮助我解决问题的方法是使用 remote debugging,这是您不知道 eclipse 应用程序内部发生了什么的情况之一。