2010-12-21 76 views
5

我有一个使用一些SWT对象一个Eclipse插件项目,例如: -Eclipse插件的依赖正在解决

import org.eclipse.swt.widgets.Composite; 

当我尝试用“目标平台”设置为编译为“运行平台(Active)',它编译得很好,我不需要导入任何swt特定的插件。

但是,我使用Eclipse 3.6.0创建了一个目标平台,如果我将其设置为活动平台,那么在使用swt类并且无法解决它们的地方,项目会编译错误。

哪个插件应该添加依赖项来解决这些错误?

我试着添加'org.eclipse.swt',但似乎没有帮助。

回答

4

我想通了。我试图在64位操作系统上针对32位目标平台进行编译,所以过滤器与SWT库不匹配,直到我从目标平台首选项手动设置它们。

+0

哦,上帝,非常感谢你!我疯了几十个未解决的SWT组件错误。你拯救了我的一天。 – 2011-05-25 20:17:43

+2

你能解释你如何手动设置它们吗? – CodyBugstein 2013-05-08 13:37:50

+0

窗口 - >首选项 - >目标平台 - >编辑 - >环境 - >将架构设置为“x86”。为我工作 – Calon 2014-05-08 11:33:49

9

我有同样的问题。在我的情况下,我有一个缺失的依赖关系,我让Eclipse为我找到插件。

在某个p2站点上找到插件后,我在进度视图中看到“重置目标平台”。

之后,很多插件被打破。检查目标平台(窗口 - >首选项 - >插件开发 - >目标平台 - >编辑),字段“架构”已从x86_64更改为x86

改回数值并点击“完成”后,再次重置了TP并且错误消失了。

+0

如何让Eclipse找到缺失的依赖关系? – garyp 2013-01-29 19:53:23

+0

使用“问题视图”或Ctrl + 1中的上下文菜单。 – 2013-01-30 09:51:30

+0

我有这个问题,但我的目标平台已经设置为'x86_64'。 – 2017-11-08 17:17:51

-1

对我来说,我需要将对应于SWT库的外部罐子添加到我的构建路径。此外,我需要添加特定于我的平台(Windows)的。

添加以下jar文件到我的项目构建路径:

$USER/.p2/pool/plugins/org.eclipse.swt_3.106.1.v20170926-0519.jar 
$USER/.p2/pool/plugins/org.eclipse.swt_3.106.1.v20170926-0519.jar 
+0

为什么你两次添加相同的JAR?您的解决方案可能是错误的,只是隐藏了您在其他地方犯下的错误。你真的需要检查你的目标平台。当插件位于目标平台中时,Eclipse应该能够把所有东西都弄清楚。 – 2017-11-28 13:11:42