Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Reply
Highlighted
New Developer
Posts: 19
Registered: ‎12-08-2009
My Device: Not Specified
Accepted Solution

Weird v4.2.x software behavior

Hi All,

 

I've developed a midlet app for my customer that is supposed to run on almost all BB software platforms (starting from 4.2).

Everything is extremely well except old T-Mobile devices that still run v4.2.x.

 

There are two scenarios:

 

  1. The code uses supported API only: a handset enters an endless self reset loop upon an application setup.
  2. So my customer agreed to give up on v4.2.x but the application should be able to detect BB SW version and to prompt a user if it's unsupported. The only solution I've found is more advanced API (that is unsupported at v4.2) invocation but such solution causes anesthetic message "Error starting app_name: Symbol 'class.method' not found." This message is displayed before Midlet.startApp() is invoked so I cannot  use my own error message.
I've proposed to m customer to use a separate application as an installer (simple one that detects the platform software version and prompt an error or continues to a real application setup invocation) but the customer rejected it.

Since the application is going to be distributed OTA and in offline mode both of them should eliminate a case where a user is able to install the application on an unsupported platform.
OTA is controlled by a download server that is able to extract the platform from "user-agent" http header.

My main concern is an offline mode: does PC loader verifies app-to-handset compatibility and if so doest it prompt some user friendly message if it's incompatible? I cannot test it since the only available v4.2 handset I use is located at DeviceAnywhere farm (OTA only). 


Has anyone ever faced such conditions (1 and 2) and what could be a solution?!

Thanks a lot in advance!!! 

 

 

 

Developer
Posts: 16,998
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport
My Carrier: O2 Germany

Re: Weird v4.2.x software behavior

javaloader does not verify the os version - but end users are not supposed to use it anyhow.

if you distribute alx+cod for usage with the desktop manager you can specify the os versions of your software.

 

your problem sounds quite interesting though, maybe you can go into more details about the reset loop? is your software on autostart or using an autostart AEP?

the only time i had real problems with rebooting devices was when a customer had it policies about disallowing unencrypted persistent storage.

----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Developer
Posts: 1,474
Registered: ‎04-14-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

[ Edited ]

I believe another way to bypass the handheld software version check is to install the application on a supported BlackBerry, and then use the Desktop Manager to either downgrade the handheld software (while preserving applications and settings) or use the device migration wizard to switch to an unsupported BlackBerry (again, while preserving applications and settings).

Developer
Posts: 1,474
Registered: ‎04-14-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

As to issues 1 and 2, I have faced both of these in the past.

 

Issue 1 (continuous reboot cycle) may happen on very old handheld software when the old bytecode verifier or linker encouters a severe exception while working on newer bytecode on startup. As a result, the BlackBerry's boot sequence is aborted and the BlackBerry reboots, thus starting the cycle from scratch.

 

Issue 2 (class/method not found) happens when a symbol (class, method, field) referenced in your module does not exist on the BlackBerry. A typical scenario is when your module is installed on a BlackBerry with handheld software that does not expose the APIs because they only appear in newer handheld software versions.

New Developer
Posts: 19
Registered: ‎12-08-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

Hi Simon,

 

Could you please specify how to set the minimal platform software versions in the ALX? Can I also have the same settings in the JAD?

 

Thanks

 

P.S. I don't use any autostart option, the self reset loop begins during the app installation (I've tried OTA only). 

New Developer
Posts: 19
Registered: ‎12-08-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior


klyubin wrote:

I believe another way to bypass the handheld software version check is to install the application on a supported BlackBerry, and then use the Desktop Manager to either downgrade the handheld software (while preserving applications and settings) or use the device migration wizard to switch to an unsupported BlackBerry (again, while preserving applications and settings).


klyubin,
How can this help? I need a solution for regular "non geek" user. Btw, is there a way to download and install firmware 4.2 on Bold - I'd like to test it...
Thanks



 

 

New Developer
Posts: 19
Registered: ‎12-08-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

 


klyubin wrote:

As to issues 1 and 2, I have faced both of these in the past.

 

Issue 1 (continuous reboot cycle) may happen on very old handheld software when the old bytecode verifier or linker encouters a severe exception while working on newer bytecode on startup. As a result, the BlackBerry's boot sequence is aborted and the BlackBerry reboots, thus starting the cycle from scratch.

 


 

Is there anything I can do with this? I tried to remove all unused references and eliminated all possible warnings but without any success...

 

 

 


klyubin wrote:

As to issues 1 and 2, I have faced both of these in the past.

 

Issue 2 (class/method not found) happens when a symbol (class, method, field) referenced in your module does not exist on the BlackBerry. A typical scenario is when your module is installed on a BlackBerry with handheld software that does not expose the APIs because they only appear in newer handheld software versions.


 

 

I understand the reason but is there a way to try load to load unsupported API "dynamically" in order to let the midlet to be started?

 

Thanks 

 

 

Developer
Posts: 1,474
Registered: ‎04-14-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

[ Edited ]

From what I understand, you're already doing almost everything a third-party application developer can do. You're already peforming a version check when serving the JAD file from the web. If you haven't specified the minimum required handheld software version in the ALX file, then do so. However, if I'm not mistaken, once an application is installed, then, regardless of the installation method, no information about its required minimum handheld software version is kept on the BlackBerry.

 

For non-geek users, the above two approaches should cover it all. Very few non-geek users will ever attempt to downgrade their BlackBerry's handheld software or migrate to an older BlackBerry (with older handheld software).

New Developer
Posts: 19
Registered: ‎12-08-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

 


klyubin wrote:

From what I understand, you're already doing almost everything a third-party application developer can do. You're already peforming a version check when serving the JAD file from the web. If you haven't specified the minimum required handheld software version in the ALX file, then do so. However, if I'm not mistaken, once an application is installed, then, regardless of the installation method, no information about its required minimum handheld software version is kept on the BlackBerry.

 

For non-geek users, the above two approaches should cover it all. Very few non-geek users will ever attempt to downgrade their BlackBerry's handheld software or migrate to an older BlackBerry (with older handheld software).


 

 

 

  1. Could you please point me where can I found "minimum version specification" format for ALX files? If this will cause PC loader to prompt a user so the solution here :-)
  2. Is there a way to downgrade the BB software? If so - how can I achieve that?
Thanks

 

 

Developer
Posts: 1,474
Registered: ‎04-14-2009
My Device: Not Specified

Re: Weird v4.2.x software behavior

P.S. Your issues 1 and 2 stem from the particular implementation of verification and linking on the BlackBerry. Basically, the rule of thumb is that for a target handheld software version X you have to build your software with JDE version X or lower. This ensures that your issues 1 and 2 will not happen on BlackBerrys with handheld software version X or higher.

 

It is possible to create handheld software version dependent builds and/or libraries. However, this does not help with the issue of your build targetting handheld software version X not loading at all (issue 2) or semi-bricking the device with an infinite reboot loop (issue 1).