摆脱无法转换为String的org.eclipse.osgi.internal.framework.EquinoxConfiguration $ 1

我刚刚遇到Apache Ivy bug java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String在执行Ant任务ivy:configjava.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String ( link ) ivy:config

今天早上我尝试将LibraryFolder ClasspathContainer插件安装到我的Eclipse(STS 3.6.1)中:每次我尝试执行ivy:retrieve时安装它都会导致上述错误。

更糟糕的是,我尝试从Eclipse Marketplace安装IvyDE插件,Eclipse开始崩溃,包括JVM崩溃等多种错误。 卸载这两个插件没有修复。 我尝试了一个新的工作区和一个空白的Eclipse安装,但最终我不得不安装我以前的Eclipse插件。

我花了一整个上午试图修复这个烂摊子,但我不得不恢复以前未提交的工作空间和Eclipse安装,所以现在除了上面的错误之外我还能正常工作。 常春藤一直工作到今天早上。

我的每个Ant任务都运行在与Eclipse相同的JRE中( C:\Program Files\Java\jdk1.7.0_60\jre\bin\server\jvm.dll )因为我使用了很多eclipse.refreshLocal任务。 虽然我可以通过删除/评论eclipse.refreshLocal任务在标准JRE中运行Ant-Ivy任务来解决问题,但我想问是否有解决方法来摆脱错误,可能是通过删除工作区中的密钥文件元数据。

正如我所读到的,一个Ivy方法被传递一个对象,从它的名字猜测,它是Eclipse配置的一部分。 虽然我将等待修正错误,但我的问题是如何更多地研究这个org.eclipse.osgi.internal.framework.EquinoxConfiguration$1参数的性质?

这看起来与构建libgdx的新Gradle项目模型时的Error有关 – 其​​中包含适用于Gradle IDE的解决方法,因此它可能适合您。

相关的Eclipse bug是https://bugs.eclipse.org/bugs/show_bug.cgi?id=445122

[由OP编辑]以简化具有相同问题的人的生活我将发布链接的内容并接受答案

只需eclipse.ini添加到eclipse.ini

 -Dorg.eclipse.swt.browser.IEVersion=10001 -Dosgi.configuration.area.default=null -Dosgi.user.area.default=null -Dosgi.user.area=@user.home -Dosgi.instance.area.default=null