3

我正在使用 Eclipse 进行一些嵌入式开发,最近每次我保存文件或进行构建时都开始给我这些错误。这很烦人,但在大多数情况下,它似乎没有引起任何问题(它甚至仍然突出显示源中的警告/错误。这里发生了什么?

Plug-in org.eclipse.cdt.cross.arm.gnu was unable to load class 
org.eclipse.cdt.managedbuilder.internal.scannerconfig.DefaultGnuWinScannerInfoCollector.

Plug-in org.eclipse.cdt.cross.arm.gnu was unable to load class  
org.eclipse.cdt.managedbuilder.internal.scannerconfig.ManagedGCCScannerInfoConsoleParser
4

2 回答 2

1

看起来eclipse wiki FAQ 说

最可能的原因是,在由违规插件声明的类的静态初始化程序中引发了异常。检查 .log 文件以查看是否确实发生了这种情况。
如果在初始化组成插件的 Java 类期间引发异常,Eclipse 平台加载器将不会加载插件。

此错误的另一个常见原因是正在加载的类缺少适当的构造函数。大多数在扩展点中声明的类都必须有一个公共的零参数构造函数。检查扩展点文档以查看您在扩展中声明的类需要什么构造函数。


如果问题仅在部署打包插件时出现(即,当它没有在运行时工作台中通过 PDE 启动时),最好检查 MANIFEST.MF 文件中的 Bundle-ClassPath 属性。
包含插件类的 JAR 文件必须在Bundle-ClassPath. 即使插件的正确类都已列出,类加载仍可能失败,因为 .class 文件可能包含对其他无法在运行时解析的类的引用。在这种情况下,需要识别缺失的类(通常通过查看有问题的类的导入语句),并且需要将必要的条目添加到Bundle-ClassPath. 如果需要额外的 JAR 文件,还需要在build.properties文件中列出这些 JAR,以便在打包插件时包含它们。

(请参阅此线程作为最后一点的说明)


因此,例如,在这个线程中,对于 eclipse3.0 时代的另一个问题:

plugin.xml文件将“ org.eclipse.core.runtime.compatablity”指定为必需的插件。但是,我使用的是 Eclipse 版本 3.0.1,应该使用“ org.eclipse.core.runtime_3.0.1”。

解决方案:

替换 Plugin.xml 中的行

<import plugin="org.eclipse.core.runtime.compatability"/>

<import plugin="org.eclipse.core.runtime"/>
于 2009-10-24T06:50:00.483 回答
0

VonC 是对的——关于类加载可能出现的问题有相当多的细节......

在这种情况下,您的 arm.cross 工具链正在引用 CDT 的 managedbuild 中不可访问的内部类。这是您的 arm 工具链和 CDT 之间的不兼容。您应该在此错误上向他们提交错误,首先尝试更新版本。

于 2009-12-12T10:47:57.910 回答