I've just spent a remarkable amount of time on some verification errors on the BlackBerry platform. Its just amazing how much misinformation exists on the subject on the internet and is being repeated constantly by blogs, I don't want to link to that misinformation since it would just promote it up in the search results...
As an example one of the often repeated "advice" options is to remove redundant import statements... Since the class file format doesn't have a notion for import and all is translated to fully qualified class names in the binary this change would do absolutely nothing, yet the advice is repeated just like any religion.
On getting a verification error you should do the following:
1. 9 our of 10 cases means you used an API that isn't available in the current device. If you are compiling on your own just make sure that you are compiling against the jars of the proper JDE version.
To check on your device go to the options -> about option to check the OS version compare it to the JDE version and make sure you are compiling against the proper version.
2. Check that you are using the preverifier from RIM, I'm not sure about this one though.
3. Make sure that you are using -target 1.1 in your compliation step! This was mentioned nowhere but that was the difference between success and failure for my build (failed on devices but worked in the simulator).
Notice that NetBeans doesn't let you configure that through GUI in mobility projects!
4. If all else fails use rapc for the compilation, this usually solves the verification issues mostly by getting the first 3 options right.
Eventually I went with the excellent BB ant tasks rather than use the approach suggested by NetBeans. The main reasons are the signing and JAD generation which works really smoothly and its much easier to use than copying the whole project into the JDE...