Hi,
I've downloaded and repeated the build steps, but got the same noclassdeffounderror...
Debugging with BlackBerry JDE i've discovered that this exception is thrown in
class.forName( "screens.GameMIDlet" ) (which points correctly to my MIDlet class) at the application startup process.
I thought that this probably has something to do with the fact that this class extends a class named AppMIDlet, which in turn extends javax.microedition.midlet.MIDlet . Looks like rapc searchs for a class that extends a MIDlet, and then it will find AppMIDlet, when is not my application entry point. It then obfuscates GameMIDlet, changing its name and methods signatures, and then there "screens.GameMIDlet" doesn't exists when the application is running (please someone correct me if this is not the actual way rapc does its thing).
I had another shot: copied all my library classes to my project, and then compiled it all together. It was not enough: again the same noclassdeffounderror, no matter if I compile it against JDE 4.1, 4.2.0 or 4.2.1 .
Another test: I removed my mid-level MIDlet class, letting my app entry point extends javax.microedition.midlet.MIDlet directly. The code (finally) ran fine on a 8100 4.2.2 and on a 8700g 4.1.0!
But when I made some changes to the library so I won't need to copy all its files to each new project (after all, this is not what libraries are made for, right?), the problem was back, but I hope (at this point, faith is becoming more important than logic) that I'm just bypassing some basic library compilation step.
If I can manage this to work I'll let you know. If it doesn't, I'd like to anticipate a question: is there any unsupported J2ME class/resource in JDE 4.1 and 4.2 versions? Even if I comment ALL BlackBerry API imports, method calls, variables, etc I have in the code, this problem persists. Looks like some kind of limitation, such as number of classes, code size, method call depth that makes rapc generate a bad code.
I say this because a LOT of times I thought I had the solution, but it comes back from the dead to haunt me after some simple code insertions. I desperately need to go away from the trial-and-error path to a more solid, reliable and caffein-free path
Peter