pdeva
pdeva

Reputation: 45451

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 seem to help.

Upvotes: 5

Views: 5934

Answers (4)

Aaron Evans
Aaron Evans

Reputation: 1

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.

Upvotes: 0

khatchad
khatchad

Reputation: 3178

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

Upvotes: 0

pdeva
pdeva

Reputation: 45451

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.

Upvotes: 6

Aaron Digulla
Aaron Digulla

Reputation: 328556

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.

Upvotes: 9

Related Questions