简体   繁体   中英

Eclipse - Blackberry SDK - Debugging on device: “details unavailable - not supported by VM”

I'm having a strange problem while debugging my Blackberry Application on a real device (BB Bold 9700). When I debug the same application within the BB emulator, the app runs fine, but when I run it on the real device, the app behaves differently ( custom painting goes completely wrong ). What's even worse is that my Eclipse environment seems to be unable to view live objects correctly while being at a break point (debug time).

I've added a screenshot to illustrate the strange behaviour: 在此处输入图片说明

As you can see, the app stops at the breakpoint within the IF statement, but the Variables pane says that the variable "methodName" equals null. Moreover, when I want to look at the variable "methodArguments" which is of type org.json.me.JSONArray , it says " details unavailable - not supported by VM ".

Does anyone know what's going on here? My app works great on the emulator, but it's currently useless on the real device.

Thanks in advance!

I think I fixed it:

The problem was that I was laying out Fields on a manager that wasn't yet added to the viewstack.

What did the trick for me was overriding onDisplay() in the manager that contained the Fields that were displayed wrong:

protected void onDisplay()
{
    //Make sure superclass is called
    super.onDisplay();

    /*You have to call "this.setDirty(true)" when you perform layout on a
     *manager that isn't added to the viewstack. Then you can use
     *"this.isDirty()" to determine whether you need to re-layout the fields
     *when the manager becomes visible.*/       
    if(this.isDirty())
    {
        //I'm not sure if I need to use "invokeAndWait" and not "invokeLater"
        UiApplication.getUiApplication().invokeAndWait(new Runnable()
        {
            public void run()
            {
                for (int i = 0; i < getFieldCount(); i++)
                {
                    /*This (custom) function makes sure the Field gets its
                     *size and position*/
                    layoutItem(getField(i));
                }
            }
        });
        //Make sure you set "dirty" to false, to make sure this only happens once
        this.setDirty(false);
    }
}

If anyone has a better solution, I'd be glad to hear it (and maybe improve my app).

org.json.me.JSONArray , it says " details unavailable - not supported by VM ".

the JSON related stuff is not available on device running 4.5 and 4.6 BB OS. Import it into the code.

Download it from here.
https://github.com/douglascrockford/JSON-java

it is available as Open Source and then use it into your applications.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM