【问题标题】:Eclipse RPC bundle activation error: "The System Bundle was updated"Eclipse RPC 包激活错误:“系统包已更新”
【发布时间】:2011-08-19 15:01:32
【问题描述】:

我在尝试启动 Eclipse RPC 应用程序时收到以下错误:

!SESSION 2011-05-05 17:07:38.649 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_24
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_IE
Framework arguments:  -application org.eclipse.ui.ide.workbench
Command-line arguments:  -application org.eclipse.ui.ide.workbench -data C:\Users\eramkoh\PCI Workspace/../runtime-EclipseApplication -dev file:C:/Users/eramkoh/PCI Workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86 -consoleLog

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2011-05-05 17:07:39.492
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.simpleconfigurator.Activator.start() of bundle org.eclipse.equinox.simpleconfigurator.
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted to finalize the configuration change
    at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:71)
    at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
    at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
    at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
    ... 11 more
Root exception:
java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted to finalize the configuration change
    at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:71)
    at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
    at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
    at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY org.eclipse.osgi 4 0 2011-05-05 17:07:39.492
!MESSAGE Bundle org.eclipse.equinox.simpleconfigurator_1.0.101.R35x_v20090807-1100 [127] is not active.

!ENTRY org.eclipse.osgi 4 0 2011-05-05 17:07:39.523
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

我应该怎么做才能解决它?

【问题讨论】:

    标签: eclipse eclipse-rcp


    【解决方案1】:

    我遇到了完全相同的问题,我意识到是什么原因造成的。如果您的目标文件中有多个与系统相关的捆绑包(例如 org.eclipse.osgi),那么如果您让应用程序运行,那么默认情况下 Eclipse 会将所有捆绑包添加到启动配置中。所以要采取的步骤:

    1. 打开启动配置并转到插件选项卡
    2. 点击验证
    3. 查看复制了哪个插件
    4. 只勾选一项,这是合适的

    详情见下图:

    【讨论】:

    • 谢谢!这行得通。但是有没有办法自动删除重复项/采用更高版本或只显示冲突的插件?我有至少200个插件的情况,手动清理很麻烦。
    • 我认为唯一的解决方案是保持目标文件干净整洁,避免重复。至少我不知道其他的可能性。为了保持目标干净,添加功能而不是捆绑包会有所帮助。
    • 肯定会这样做。不幸的是,这是一个由一群人维护的更大的项目,所以我不得不忍受它。
    【解决方案2】:

    在 32 位 Windows Vista 的 32 位 Java 7 VM 上尝试从 Eclipse SDK 4.2.2 启动 Eclipse CDT 4.1.1(带有几个 4.2.2 和几个自己的插件)时,我遇到了类似的问题。我不确定根本原因是什么,但我可以使用以下步骤可靠地重现并解决它。

    1. 设置新的目标平台定义,或重新加载现有的。
    2. 尝试在调试模式 (Ctrl+F11) 下运行 JUnit4 插件测试,并观察一切正常。
    3. 重启 Eclipse。
    4. 重复第 2 步,得到与主题启动器相同的 java.lang.IllegalStateException。
    5. 重新加载目标平台定义,点击“目标定义不同步:活动目标平台与文件系统不同步。在首选项页面上按确定将更新目标平台”
    6. 重复第 2 步,观察错误再次消失。

    由于在 Eclipse 3.6 的类似场景中我没有收到此错误,我猜想 Eclipse Juno 中的目标平台代码不能很好地处理 NTFS 文件时间戳。因此,当实际加载 Eclipse 实例时,会错误地检测到更改的包并尝试重新安装它,从而导致稍后出现此错误。

    总结:如果遇到此错误,请尝试重新加载目标平台。

    【讨论】:

      【解决方案3】:

      尝试在产品的配置选项卡上添加 org.eclipse.core.runtime,并将其设置为默认启动级别 (0) 并将自动启动设置为 true。

      【讨论】:

      • 您能解释一下我们如何实现这一目标
      猜你喜欢
      • 2018-03-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2012-11-25
      • 2021-08-23
      • 1970-01-01
      相关资源
      最近更新 更多