I had the same problem....
I'm using retroguard (with JBuilder) - and there is one point:
after obfuscation I must extract the jar file and make preverify of all obfuscated classes! the preverifier will fix it...
this works fine and I dont know why...
I too tried for quite a while to get Retroguard to work, but I was unable to get it to work successfully on any SDK that didn't already have an "emptied out" API. Finally I gave up and found a better solution. I now use the Mocha Java source obfuscator, which is freeware and can be downloaded from the following URL
Note that the company MochaSoft has now gone in a completely different direction, so I don't think you can download this from the company website. Instead, just use the download link from freedownloadcenter given above.
This is alpha software and freeware so it still has a couple of quirks. But the good news is that it is a source level obfuscator, so basically it creates obfuscated source code for you instead of fiddling around with your Jar file in some mysterious way that never seems to actually work. I put my original source code into a directory called "origsrc" and then run mocha on it. This creates a subdirectory (I call it "new" that contains the obfuscated source. I then copy the obfuscated source to my "src" directory (in Sun's WTK) and then run the build process as before.
This is the easiest and most effective solution I have found and I'm pretty happy with it.
By the way, the development tools like Codewarrior Wireless Studio advertise themselves as alowing you to obfuscate your code in a completely integrated way in all SDKs. Don't be fooled. I bought CW WS7 mostly for obfuscation, and it turns out all they do is bundle the free Retroguard obfuscator that doesn't work! They offer nothing over what Sun's WTK offers in terms of obfuscation, and we both know that doesn't work. Use Mocha instead.