【问题标题】:Subclipse: Error with SVN after an update (Unable to create SVN preference page)Subclipse:更新后 SVN 出错(无法创建 SVN 首选项页面)
【发布时间】:2019-08-05 12:13:33
【问题描述】:

下午好,

到目前为止,我已经使用 Eclipse 和 Subclipse(带有 JavaHL)几个月了,没有任何问题。 昨天(即 2019 年 3 月 13 日)更新了一些插件(包括 Subclipse)subclipse 不再工作。 例如,我不再能够提交或拉取任何文件,当我查看 window > preference > Team > SVN 时,eclipse 显示以下消息: Unable to create the selected preference page. java.lang.reflect.InvocationTargetException

请在下面找到异常堆栈跟踪:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:206)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:284)
    at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:51)
    at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1279)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:361)
    at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1166)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
    at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
    at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
    at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:874)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:176)
    at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:871)
    at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1240)
    at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1263)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
    at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:264)
    at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
    at org.eclipse.jface.util.OpenStrategy$1.lambda$2(OpenStrategy.java:420)
    at org.eclipse.swt.widgets.Display.timerProc(Display.java:5566)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1581)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4470)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:822)
    at org.eclipse.jface.window.Window.open(Window.java:798)
    at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:214)
    at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:476)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568)
    at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    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:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1474)
Caused by: java.lang.LinkageError: Native library version must be at least 1.11.0,but is only 1.9.3 (r1718519)
    at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:150)
    at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
    at org.apache.subversion.javahl.types.Version.<clinit>(Version.java:40)
    at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:147)
    at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
    at org.apache.subversion.javahl.SVNClient.<clinit>(SVNClient.java:52)
    at org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapterFactory.isAvailable(JhlClientAdapterFactory.java:184)
    at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:83)
    at org.tigris.subversion.clientadapter.javahl.Activator.getVersionSynchronized(Activator.java:72)
    at org.tigris.subversion.clientadapter.javahl.Activator.getVersionString(Activator.java:67)
    at org.tigris.subversion.clientadapter.javahl.Activator.getDisplayName(Activator.java:97)
    at org.tigris.subversion.subclipse.ui.preferences.SVNPreferencesPage.<init>(SVNPreferencesPage.java:102)
    ... 66 more
Root exception:
java.lang.LinkageError: Native library version must be at least 1.11.0,but is only 1.9.3 (r1718519)
    at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:150)
    at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
    at org.apache.subversion.javahl.types.Version.<clinit>(Version.java:40)
    at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:147)
    at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
    at org.apache.subversion.javahl.SVNClient.<clinit>(SVNClient.java:52)
    at org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapterFactory.isAvailable(JhlClientAdapterFactory.java:184)
    at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:83)
    at org.tigris.subversion.clientadapter.javahl.Activator.getVersionSynchronized(Activator.java:72)
    at org.tigris.subversion.clientadapter.javahl.Activator.getVersionString(Activator.java:67)
    at org.tigris.subversion.clientadapter.javahl.Activator.getDisplayName(Activator.java:97)
    at org.tigris.subversion.subclipse.ui.preferences.SVNPreferencesPage.<init>(SVNPreferencesPage.java:102)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:206)
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:284)
    at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:51)
    at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1279)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:361)
    at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1166)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
    at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
    at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
    at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:874)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:176)
    at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:871)
    at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1240)
    at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1263)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
    at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:264)
    at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
    at org.eclipse.jface.util.OpenStrategy$1.lambda$2(OpenStrategy.java:420)
    at org.eclipse.swt.widgets.Display.timerProc(Display.java:5566)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1581)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4470)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:822)
    at org.eclipse.jface.window.Window.open(Window.java:798)
    at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:214)
    at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:476)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568)
    at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    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:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1474)

这里还有关于会话数据的信息:

eclipse.buildId=4.10.0.I20181206-0815
java.version=1.8.0_191
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -data file:/path/to/workspace/ -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product

昨天更新了以下元素:

  • Marketplace Client1.7.2.v20180829-1931.7.4.v20190206-174

  • Subclipse4.2.4.2018042617434.3.0.201901172050

  • Subversion JavaHL Windows Native DLL's 1.9.7.201803201521Subversion 1.11 JavaHL 1.11.1.20190116204

  • SVNKit Client Adapter 1.8.12.11.8.12.

eclipse.ini 文件在-vmargs 语句下包含一行JavaHL -Djava.library.path=/usr/lib/x86_64-linux-gnu/jni 的路径。

我正在开发 Ubuntu 16.04。我已经尝试过,但没有成功:

  • 通过 Marketplace 卸载并重新安装 subclipse

  • 通过Help 卸载并重新安装 subclipse > Install New Software... 提供指向 Subclipse 二进制文件的链接(https://dl.bintray.com/subclipse/releases/subclipse/4.3.x/https://dl.bintray.com/subclipse/releases/subclipse/latest/

  • 使用新的空工作区

  • 在同一台计算机上使用新的空工作区执行 eclipse 和 subclipse 的全新安装

我还尝试在另一台计算机上安装 subclipse(安装了 eclipse 但从未安装过 subclipse),看来我遇到了同样的问题...

如果有人能给我一些关于这里出了什么问题或如何解决这个问题的见解,我将非常感激,

提前致谢!

塞巴斯蒂安

【问题讨论】:

    标签: eclipse svn subclipse svnkit


    【解决方案1】:

    我终于找到了解决这个问题的方法。

    我执行了 全新安装(在删除了所有与 eclipse 相关的文件之后 - 其中显然包括安装 eclipse 的文件夹,还包括 home 中的 .p2.subversion 文件夹目录,不包括我没有删除任何文件的工作区)并通过Help > Install New Software... 安装了subclipse,提供了Subclipse以前版本的链接,即Subclipse 4.2 (https://dl.bintray.com/subclipse/releases/subclipse/4.2.x/)。到目前为止,一切都运行良好。

    我认为遇到与我相同问题的人也可以通过在上次更新之前恢复安装(避免执行全新安装...)通过Help 以更简单的方式解决此问题 > About Eclipse IDE > Installation Details >Installation History 然后选择最后安装并点击revert。然而,我无法做到这一点,因为我修改了一些 Eclipse 似乎需要执行此操作的文件。所以我不确定这第二种方法是否有效......

    即使这是解决问题的一种方法,我也不明白当前 Subclipse 版本 (4.3) 出了什么问题。特别是这是当前版本已知和报告的问题(但在这种情况下,我没有找到任何有关它的文档或问题......)或与我使用的配置或我所做的事情相关的事情?!如果有人对此有一些想法,我很乐意理解:)

    【讨论】:

      【解决方案2】:

      这本身不是问题,文档中或多或少地解释了:

      https://github.com/subclipse/subclipse/wiki

      当前版本的 Subclipse 支持 SVN 1.11 或 1.10。在除 Windows 之外的每个操作系统上,您都有责任提供本机库(请参阅上面页面上的 JavaHL 链接)。您的错误是您安装了 1.11 支持,但您安装了 SVN 1.9.x 本机库。您没有提及您的操作系统,但一种解决方案是将已安装的 SVN 客户端更新到 1.11。

      如页面下方所述,如果您卡在 SVN 1.9.x 客户端,则必须安装支持 1.9 的旧 Subclipse 4.2.x 版本。

      如果您可以获得 1.10,但不能获得 1.11,那么您只需卸载 1.11 JavaHL 插件并安装 1.10 插件。两者都在 Subclipse 更新站点上。

      【讨论】:

      • 这是正确的答案,得到了 OP 的错误消息中已经给出解释的支持:Native library version must be at least 1.11.0,but is only 1.9.3
      【解决方案3】:

      另一种解决方法是不安装插件的 JavaHL 部分。然后它改用 SVNKit,偏好页面再次工作。

      【讨论】:

        【解决方案4】:

        我遇到了这个错误,因为 Debian Buster (1.10.4-1+deb10u1) 上安装的libsvn-java 的版本不符合 Eclipse 2020-03 的要求:至少 1.12.0。

        简单地运行 sudo apt-get purge libsvn-java 解决了这个问题,因为 Eclipse 然后又退回到 SVN Kit。道德是:没有安装 JavaHL 总比版本太旧要好。

        【讨论】:

          猜你喜欢
          • 2017-05-26
          • 2014-02-28
          • 1970-01-01
          • 1970-01-01
          • 2012-12-05
          • 1970-01-01
          • 1970-01-01
          • 2012-03-18
          • 1970-01-01
          相关资源
          最近更新 更多