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

Posted

技术标签:

【中文标题】摆脱无法转换为 String 的 org.eclipse.osgi.internal.framework.EquinoxConfiguration$1【英文标题】:Getting rid of org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 that cannot be casted to String 【发布时间】:2014-12-04 10:50:15 【问题描述】:

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

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

更糟糕的是,我尝试从 Eclipse Marketplace 安装 IvyDE 插件,但 Eclipse 开始因大量错误而崩溃,包括 JVM 崩溃。卸载两个插件都没有解决。我尝试了一个新的工作区和一个空白的 Eclipse 安装,但我最终不得不安装我以前的 Eclipse 插件。

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

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

据我所知,Ivy 方法传递了一个对象,从其名称猜测,该对象是 Eclipse 配置的一部分。虽然我将等待错误修复,但我的问题是如何进一步调查此 org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 参数的性质?

【问题讨论】:

An internal error occurred during: "Loading bundle[...]"的可能重复 【参考方案1】:

这看起来与 Error at building model of new Gradle project for libgdx 相关 - 其​​中包括适用于 Gradle IDE 的解决方法,所以它可能对您有用。

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

[由 OP 编辑​​] 为有同样问题的人简化生活我会发布链接的内容并接受答案

只需将以下行添加到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

【讨论】:

PS:相关的底层 Eclipse 错误已在 Eclipse Luna SR2 (4.4.2) 中修复,根据eclipse.org/eclipse/development/plans/freeze_plan_4_4_2.php 将在 2 月底(从今天起 1 个月内)发布。 已确认:错误已在Luna 4.4.2 中修复!

以上是关于摆脱无法转换为 String 的 org.eclipse.osgi.internal.framework.EquinoxConfiguration$1的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中摆脱 CString 中的换行符

如何摆脱熊猫将excel表中的大数转换为指数?

无法从 'char[]' 转换为 'string[]' [关闭]

BlueJ 错误:“不兼容的类型:int 无法转换为 java.lang.String”和“不兼容的类型:java.lang.String 无法转换为 int”

无法从 'const std::string [3]' 转换为 'std::string'

无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost