我正在嘗試執(zhí)行我最近從 eclipse Indigo 轉(zhuǎn)移到 Photon 的 RCP 應(yīng)用程序。更改/更新所需的庫后,我設(shè)法運(yùn)行該應(yīng)用程序,將產(chǎn)品作為 Eclipse 應(yīng)用程序(從 Eclipse IDE)啟動(dòng),沒有問題。但是,當(dāng)我將產(chǎn)品導(dǎo)出到本機(jī)可執(zhí)行文件并啟動(dòng)它時(shí),我收到了幾個(gè) InjectionException!SESSION 2018-09-06 16:48:55.406 -----------------------------------------------eclipse.buildId=unknownjava.version=1.8.0_171java.vendor=Oracle CorporationBootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=es_ESFramework arguments: -clearPersistedStateCommand-line arguments: -os win32 -ws win32 -arch x86 -clean -clearPersistedState!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-09-06 16:48:59.412!MESSAGE Unable to create class 'org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon' from bundle '52'!STACK 0org.eclipse.e4.core.di.InjectionException: Unable to process "CommandProcessingAddon.broker": no actual value was found for the argument "IEventBroker". at org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:489) at org.eclipse.e4.core.internal.di.InjectorImpl.resolveRequestorArgs(InjectorImpl.java:480) at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:126) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:412) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345) at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:214)等等。我已經(jīng)檢查了啟動(dòng)配置上的插件列表和產(chǎn)品是否相同(使用“添加所需插件”選擇并在啟動(dòng)配置上使用“驗(yàn)證插件”進(jìn)行檢查)。事實(shí)上,從產(chǎn)品頁面按添加所需的插件似乎會(huì)遺漏啟動(dòng)窗口包含的一些插件(并且似乎需要以便應(yīng)用程序在 eclipse 中啟動(dòng))所以我手動(dòng)添加了缺少的插件到產(chǎn)品,但仍然沒有運(yùn)氣。我已經(jīng)將最終的插件列表(來自啟動(dòng)配置的那個(gè))上傳到這個(gè) pastebin,看看它是否與它有些相關(guān)。從產(chǎn)品自動(dòng)生成的插件列表幾乎相同,但包含的插件少了 7 個(gè)(然后我添加了上面說的)。我是 Eclipse Photon 和所有這些注入機(jī)制的新手,但我很確定我的項(xiàng)目不會(huì)直接使用它(也許包含的一些新插件間接使用它?)。我已經(jīng)按照另一個(gè)答案中的建議使用了 -clean 和 -cleanPersistedState 參數(shù)來處理注入問題,但我仍然得到相同的結(jié)果。關(guān)于如何解決這個(gè)問題或如何禁用注入/哪個(gè)插件導(dǎo)致注入被調(diào)用的任何線索?
1 回答

DIEA
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
可能org.eclipse.equinox.ds
沒有啟動(dòng)OSGi 聲明性服務(wù)插件,這會(huì)阻止事件代理工廠運(yùn)行。
如果您使用 xxx.product 文件來配置 RCP,請(qǐng)檢查“配置”選項(xiàng)卡的“開始級(jí)別”部分。使用“添加推薦”按鈕添加推薦的啟動(dòng)配置,其中包括org.eclipse.equinox.ds
更新:對(duì)于Eclipse 2018-09年起org.apache.felix.scr
取代org.eclipse.equinox.ds
,需要類似的啟動(dòng)級(jí)別配置。
添加回答
舉報(bào)
0/150
提交
取消