Thursday, December 2, 2010

Warning: No definition found for exported static routine: .main(String[])

To get rid of this warning, I cannot call it as a solution, but it is a setting which is needed to be done, particularly for executing the Midlets. Just putting here what I did.... Select the project in your JDE, Right Click on it, then select the "Application" tab, then change the Project Type to "Midlet", then click OK. That’s it. Clean and Build the project, now it will not show the warning.

Installation Failed: Error 907 Invalid JAR illegal host string: starts with ‘/’

This error may occur, while installing the mobile application whose name is same as the application which is already installed on the mobile device. When it asks whether to overwrite the existing application which is installed on the mobile device, and even if you select YES, still this error may occur.

Best way to deal with such error is to uninstall the older version of an application from your mobile device and then re-install the newer version.

Installation Failed: Error 907 Invalid JAR output file: -1.cod code section too large: 65432 bytes

This error comes when one or more classes in your application produce more than 64K byte code. IE there is a limit of 64K for each COD file. It is good idea to create number of small classes instead of creating very large single class.

Installation Failed: Error 907 Invalid JAR Error: Control flow verification information too large: commandAction

This error occurs at the time of installing a mobile application on a device if any method in your application is very big and lengthy. From the error, it is self explanatory. To sort out this error, you have to go on reducing the method. For this you can remove the repetitive statements from the method and place them in a separate method, and then calling that method into the bigger one.

Such kind of error generally come for the methods like commandAction(), itemStateChanged() etc.

Installation Failed: Error starting xxx: Class '' ref member out of range

Reducing the number of class level variables will sort out this error. Many devices have a limited memory allotted to declare the class level variables. But remember, this limit is not for an application, but for each class in your application. In short, instead of defining all the class level variables in a single class, it is recommended that you create several classes and distribute your class level variables in all these classes. So the above error will occur when, class level variables in any of your classes in your application has occupied more memory than the allowed for each class. Please also note that, this limitation is for class level variables and not for local variables those you declare inside any method.

Errors, Exceptions and Problems in Mobile Application Development and Its Installation on Mobile Devices

Like a newbie, I also have started developing application and go on implementing code after code as per requirement and ultimately finished my application development.
My application was fully developed with great efforts and it was running perfectly fine as expected on emulators, I have tested it vigorously to make it bug free. Then I wanted to install and test it on actual mobile device. I followed all the necessary steps of installing mobile application on the device, but I was failing again and again with various kinds of errors which I had never seen in my life. At first glance, I thought it is a small problem. After taking guidance from some experts on the various forums, I have decided to alter my application. It was really annoying to make changes in the already developed application. But there was no other option left for me.

I started resolving errors after errors. I came to know that I was totally wrong about the problem that I thought it was a small problem.

When you start installing mobile application on a mobile device, the application is verified first. There are various criteria defined by the device vendor. These criteria varies vendor to vendor, and device to device of the same vendor. On the basis of these criteria, the application is checked at the time of installation on the mobile device. If application fulfills all the criteria set by the device vendor for that particular device, the application is marked as verified and then installation proceeds further.

Really I was totally unaware of various physical limitations like method should not be too long, there should be limited number of variables, size of COD should not be more than 64KB etc. So I decided to share my experience, what I did to sort out these errors. It may be possible that I might have not experienced the errors which you are facing, and vice-versa. Sorry about that.

My development environment was NetBeans IDE and BlackBerry JDE. I tested my application on various BlackBerry emulators. I tried installation on mobile device BlackBerry 8520 Curve Smart Phone.