开发者

Eclipse plugin dependency on SWT classes not being resolved

I have an eclipse plugin project which uses some swt objects, eg -

import org.eclipse.swt.widgets.Composite;

When I try to compile it with the 'Target Platform' set to 'Running Platform (Active)', it compiles fine and I dont need to import any swt specific plugins.

However, I created a target platform with Eclipse 3.6.0 and if I set it as the active platform the project has compile errors wherever swt classes are used and cannot resolve them.

Which plugin should I add a dependency to, to resolve these errors?

I tried adding 'org.eclipse.swt' but that does not se开发者_如何学Goem to help.


I had the same problem. In my case, I had a missing dependency and I asked Eclipse to locate the plugin for me.

After the plugin was found on some p2 site, I saw "Resetting Target Platform" in the progress view.

After that, a lot of plugins were broken. Checking the target platform (Window -> Preferences -> Plug-in Development -> Target Platform -> Edit), the field "Architecture" had changed from x86_64 to x86.

Changing the value back and clicking on "Finish" did reset the TP once more and the errors went away.


I figured it out. I was trying to compile against a 32 bit target platform on a 64 bit OS, so the filters were not matching the SWT libraries until I set them manually from the target platform preferences.


For me, I needed to add external jars corresponding to the SWT libraries to my build path. Moreover, I needed to add ones specific to my platform (Windows).

I added the following jar to my project build path:

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


In case anyone runs into this problem on Mac M1 arm processor: I ran into this problem when upgraded eclipse to use arm versions of jdk, etc. To fix, had to manually change the target to aarch64 for eclipse via eclipse/preferences/plugin development. The default was incorrect and was x86 target.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜