过去几天我花了一些时间将Eclipse E4插件项目的构建过程转移到maven和tycho。在我开始工作之后,我想再次看一下producr并试图通过RunAs“xvy.product”启动它。 我希望工作正常,但我收到此错误消息:
applicationXMI parameter not set and no branding plugin defined.
java.lang.Exception
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.lambda$12(E4Application.java:397)
at java.util.Optional.orElseGet(Optional.java:267)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.determineApplicationModelURI(E4Application.java:391)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:349)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:253)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
最后看起来,我自己的代码似乎没有任何问题?!经过一些谷歌搜索后,我终于发现了一些类似的错误:这个问题在stackoverflow Eclipse 4 RCP Deployment applicationXMI argument missing进行了讨论,但我没有收到 AssertionFailedException也不尝试导出RCP产品。另一个出现是eclipse.org上的一个错误Application.e4xmi should be default for "applicationXMI" 因此,我查看了我的plugin.xml,它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="prod"
point="org.eclipse.core.runtime.products">
<product
application="org.eclipse.e4.ui.workbench.swt.E4Application"
name="FinPim">
<property
name="appName"
value="FinPim">
</property>
<property
name="applicationXMI"
value="mhFinPim/Application.e4xmi">
</property>
<property name="lifeCycleURI" value="bundleclass://mhFinPim/de.mho.finpim.lifecycle.Manager"></property>
</product>
</extension>
</plugin>
你可以在这里看到,我的applicationXMI指向mhFinPim / Application.e4xmi ,这是bundlename / Applicatione4xmi 那么,现在我想知道,还有什么可能是错误的,这会阻止我的产品开始?
在此例外之后,我再收到一个:
java.lang.NullPointerException
at org.eclipse.emf.common.util.URI$URIPool$PlatformAccessUnit.setValue(URI.java:865)
at org.eclipse.emf.common.util.URI$URIPool.intern(URI.java:1949)
at org.eclipse.emf.common.util.URI.createPlatformPluginURI(URI.java:2718)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.determineApplicationModelURI(E4Application.java:408)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:349)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:253)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:149)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
我想,这只是由第一个异常引起的后续错误?