在 Eclipse RCP应用程序运行配置中的错误是常见的问题源,本章描述这些问题,在你启动应用程序时有问题,可以参考参考。下表列出了潜在的问题和应对方案。
问题 | 审查 |
---|---|
在启动时显示 "Could not resolve module" | 检查在你的产品配置中包含了所有需求的插件。确保你的产品定义了到所有这些需求插件或特征的依赖。参考“在产品启动时查找缺少的插件”。 Bundles 可能也需要特定版本的 Java 虚拟机,即,一个 bundle 可能需要 Java 1.6,因此不能在 Java 1.5 VM 中加载。检查 MANIFEST.MF 文件的 Overview 标签页中需求的 Java 版本。 |
在启动时显示 "java.lang.RuntimeException: No application id has been found." | 参考上面的 "Could not resolve module". 大多数情况下也会通过缺少插件依赖触发。 |
奇怪的行为,但是没有错误消息 | 检查你的运行配置是否包含-consoleLog 参数。这个选项允许你在 Eclipse IDE 的控制台视图中查看应用程序错误。 |
运行时配置经常缺少需求的插件 | 确保你的产品或特征包含所有需求的依赖。 |
在产品依赖标签页中的修改没有反映到运行配置(即,添加了新插件但是没有包含在运行配置中) | 如果你直接从产品定义文件启动的话,会更新存在的运行配置。如果你直接选择运行配置启动,它将不会更新。 |
应用程序模型修改没有反映到 Eclipse 4 应用程序中 | Eclipse 4 持久化用户的改变到一个文件,在启动时从这个文件中恢复。在开发期间,这可能导致模型修改没有正确的应用到运行时模型的情形,例如,你定义了一个新的菜单项,但是这个菜单项没有在你的应用程序中显示。 |
服务,例如,key 绑定或选择器服务,在 Eclipse 4 应用程序中不能工作 | 在 Eclipse 4.3 之前,每个 Part 需要实现一个 @Focus 方法来将焦点放到 SWT 控制中,这个错误在 Eclipse 4.3 之后不再发生。 |
菜单项在 Eclipse 应用程序中时禁止的 | 确保包org.eclipse.e4.ui.internal.workbench.addons 中的HandlerProcessingAddon 类注册为模型组件。bundle 符号名是org.eclipse.e4.ui.workbench 。 |
在注册表中找不到应用程序 "org.eclipse.ant.core.antRunner" 或应用程序 | 确保你在产品配置文件中点击了新建... 按钮,然后选择了E4Application 作为启动应用程序。你可以在 plugin.xml 文件中的扩展标签页检查当前的设置,在org.eclipse.core.runtime.products 扩展细节中。 |
最常见的问题是在你的产品中缺少一些需求的插件,如果你用基于特征的产品配置,你需要确保所有在 MANIFEST.MF 文件中引用的插件也包含在你的特征中。这个错误通过控制台视图报告,通常是第一个错误消息,你需要向上滚动才能看到它。
下面列出了这个消息通常看起来的样子:
org.osgi.framework.BundleException:
Could not resolve module: com.example.e4.rcp.todo.services [9]
Unresolved requirement:
Require-Bundle: com.example.e4.rcp.todo.events;
bundle-version="1.0.0"
在弄清楚缺少的插件后,确保将它们添加到你的产品中(如果产品是基于插件的)或添加到你的特征中(如果产品是基于特征的)。
提示:Eclipse 可以在你运行启动配置之前自动的检查缺少的依赖。在插件标签页,点击
验证插件
按钮或选择在启动之前自动验证插件
选项。这将检查运行配置是否有所有需求的插件。
避免在运行配置中修复依赖问题,因为运行配置是基于产品配置文件创建或更新的,因此总是确保产品文件是正确配置的,而不是修改派生的信息。产品配置用来输出你的产品,因此产品依赖中的错误会导致输出的应用程序不能启动。