Debugging Error with PlayBook Emulator

I ran into an issues while trying to launch a PlayBook app from Flash Builder Burrito in Debugging Mode.

I launched and the “Launching [Application name]” indicator in the bottom right corner just slowly inched up to 100%, but nothing happened. Eventually I got error messages.

From Flash Builder:

The Flash Builder debugger failed to connect to the running application.

Ensure that:

1. For in-browser applications, you are running the debugger version of Flash Player.

2. For debugging on a mobile device, you have a reliable WiFi connection to the device, and port 7935 is open on your machine’s firewall.

On the emulator:

Unable to connect to the debugger at address x.x.x.x, enter the correct host name or IP address or select cancel to continue without debugging.

The cause of this error is that your Default Debug Host IP is wrong. To get to this setting:

Go to Flash Builder Preferences
FlashBuilder ->
Target Platforms ->
BlackBerry Table OS

In my case the reason the error happened was a bit confusing. But it came down to this. That IP address got set to my public IP address in my hotel. When I went to present I didn’t have a network connection, and so that address was no longer present. The easiest fix for this when using the emulator is to set that Default Debug Host IP to the gateway of your VMWare’s NAT setup.

I don’t have an easy was of getting that, but the way I did it was:
Determine IP address for Playbook emulator
BlackBerry Settings
About ->
inet

For me 192.168.253.138.

Determine all of my system’s IP addresses
OSX ifconfig
Windows ipconfig

When I did that, I found one address (192.168.253.1) that was a reasonable bet for the gateway of the NAT network.

 

Tivo Remote with QNX for BlackBerry Tablet

BlackBerryQNX Tivo Remote
For my next foray into mobile development with Flex and AIR, I’m trying an application with the default UI of the BlackBerry Tablet, the QNX api.

QNX is the company behind the BlackBerry Tablet OS. They provide an ActionScript library for creating components for the BlackBerry tablet. It’s what most of the native apps use, and to get that native feel, this is what you are going to use.
For me, coming to this from Flex, not having the framework to fall back on was a little scary. Ultimately I did get it working. I did suffer from the same disgust I had for the last remote project.
Encouraged by my success with that last project, I applied some of the same techniques. I changed some of the colors, positions and layouts. I’m still not happy with it, but the failings are mine, and not QNX’s. 
Lessons Learned
Flex rocks. Not having to spend time laying out stuff, add child objects to the stage, and generally being able to style components directly through an attribute or CSS is a huge productivity boost. 
That being said, ActionScript only projects aren’t terrible. Performance is better, the file sizes are smaller. In the case of the BlackBerry tablet, it’s the native look and feel.
The PlayBook starts in landscape (and the emulator can’t turn to portrait yet). It forced me to really think about how I needed to lay things out. In the end, I’m not happy with this one yet. I need to get better at laying things out. 
BlackBerryQNX Tivo Remote with bad fonts
Finally I learned that by default when you run a QNX app on your system you don’t have the fonts to make it look good. Even if you install it, it still won’t look good. I had to manually add the font as a text format to all of my controls. Annoying, but worth it. The text is listed as something like BBSans, but it is actually called DejaVu and is freely available. Thanks to Kevin Hoyt for pointing that out. 
Resources:
AIRTivoRemoteQNX on github
DejaVu Font

 

Compiling Flex Hero Apps with MXMLC in ANT

I ran into a problem today trying to use ANT to publish the same AIR application to BlackBerry and Android at the same time. Basically, when I used Flash Builder Burrito to push directly to a device for either platform it worked perfectly. When I did it via the ANT script I just got a white screen.

The cause: I had the wrong config loaded. I had air-config.xml as the configuration, and needed airmobile-config.xml as the configuration.

Took me a bit, but I figured it out. So if you’re looking to compile your Hero apps via ANT, use the right config.

https://gist.github.com/735429.js?file=build.xml