子片段:更新后SVN错误(无法创建SVN首选项页面)

时间:2019-03-14 14:37:18

标签: eclipse svn subclipse svnkit

下午好,

到目前为止,我已经使用Eclipse和Subclipse(带有JavaHL)已有几个月了,没有任何问题。 昨天(即19/03/19)更新了一些插件(包括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文件在-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni语句下包含一行到JavaHL -vmargs的路径。

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

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

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

  • 使用新的空工作区

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

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

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

预先感谢!

塞巴斯蒂安

4 个答案:

答案 0 :(得分:1)

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

我执行了全新安装(删除了所有与eclipse相关的文件后-显然包括eclipse的安装文件夹,还包括其中的.p2.subversion文件夹home目录(不包括我没有删除任何文件的工作区),并通过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)出了什么问题。特别是这个问题在当前版本中是已知的并已报告(但是在这种情况下,我没有找到任何文档或有关它的问题...)或与我使用的配置有关的问题或我做了的事情?!如果有人对此有任何想法,我将很高兴了解:)

答案 1 :(得分:1)

这本身不是问题,在文档中或多或少地对此进行了解释:

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更新站点上。

答案 2 :(得分:0)

另一种解决方法是不安装插件的JavaHL部分。然后,它改用SVNKit,首选项页面再次起作用。 enter image description here

答案 3 :(得分:0)

我遇到了此错误,因为在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总比拥有太旧的版本好。