After much pulling of hair and gnashing of teeth, I was able to discover what was causing my MIDlets on my Sony Ericsson T610 to declare “Invalid Application”. Since I was creating all of my project directories manually, I wasn’t entering these properties to the MANIFEST.MF:
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
With the J2ME Wireless Toolkit, this is done within the Settings menu for each project, and actually comes prepopulated whenever you are smart enough to let it initialize the project for you.
Once I did that, then bluetooth uploads to my phone worked like a charm. It still sucks that T-Mobile won’t let you download JAD or JAR files from online, but at least I can get applications on it now.
On a related note, the book i’m reading by Michael Morrison, SAMS “Teach Yourself Wireless Java with J2ME in 21 Days” is actually very practical. It’s a little bit outdated at this point, so I had to adapt the Weather over HTTP MIDlet to use NanoXML so that I could parse the modern weather.gov RSS feeds, but that resulted in a better understanding of the underlying mechanisms anyway.
I’ll spruce it up a little bit when I learn how to store persistent settings so that you can pick a station ID. Once that’s done i’ll probably toss it up onto sourceforge for future improvement.