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

Adobe AIR Development

Reply
New Contributor
Posts: 5
Registered: ‎12-08-2010
My Device: Not Specified
Accepted Solution

Application terminates right after it starts

Hi

 

I have just get up and running, got emulator, sdk etc. setup

 

For my first test I'll like to make a simple test application just to get started :-)

 

I am using FDT and builds/package/install via the command line and it works as expected, however in the emulator I have the icon for my application but as soon as I press the icon I get a "loading your application" and than it disappears.

 

I don't get any errors in the console!

 

Any suggestions?

 

/ Reinholdt

Contributor
Posts: 10
Registered: ‎12-07-2010
My Device: Not Specified

Re: Application terminates right after it starts

Are you debugging whilst running the application? Or installing it on the device and running it with no debugging?

 

When I click on an application icon (for example "testapp-debug") it will start too launch then close. I assume it's because in order for it too run it requires a connection to the debug tools.

 

Can you share you command line call?

Highlighted
Developer
Posts: 2,462
Registered: ‎11-04-2010
My Device: Bold 9700

Re: Application terminates right after it starts

Hey,

Ml4d is correct. If you ran the application previously in debug mode it will not run a second time if you click on the icon because it waits for the debugger machine to connect. Once it fails to connect it will exit the application. If you want to be able to open the app using the icon you must install and run the app through the command line without debugging it and it will open via the icon thereafter. Good luck!
J. Rab (Blog) (Twitter)
--
1. If you liked my post or found it useful please click on the thumbs up and provide a Like!
2. If my post solved your problem please click on the Accept as Solution button. Much appreciated!

Approved Apps: OnTrack | ssShots | Hangman
New Contributor
Posts: 5
Registered: ‎12-08-2010
My Device: Not Specified

Re: Application terminates right after it starts

Thanks for your reply's

 

Here is my command

 

<exec executable="${system.compilers.blackberry-airpackager}">

 <arg value="-package"/>

 <arg value="acmeajax.bar"/>

 <arg value="-installApp"/>

 <arg value="-launchApp"/>

 <arg value="${basedir}/build_dev/rim/tablet/acme-ajax-app.xml"/>

 <arg value="${basedir}/build_dev/rim/tablet/acme-ajax.swf"/>

 <arg value="${basedir}/build_dev/rim/tablet/assets"/>

 <arg value="-device"/>

 <arg value="192.168.180.128"/>

 <arg value="-password"/>

 <arg value="1234"/>

 </exec>

 

and the output from the console.

[exec] Package created: acmeajax.bar

     [exec] Sending Install request...

     [exec] Action: Install

     [exec] File size: 51615

     [exec] Installing ...

     [exec] actual_dname::acme.ajax.bWVkaWEuYWNtZS5hamF4ICAgICA

     [exec] actual_id::bWVkaWEuYWNtZS5hamF4ICAgICA

     [exec] actual_version::0.18.1.0

     [exec] result::success

     [exec] Sending Launch request...

     [exec] Action: Launch

     [exec] Launching acme.ajax.bWVkaWEuYWNtZS5hamF4ICAgICA...

     [exec] result::Terminated

     [exec] done

BUILD SUCCESSFUL

Total time: 37 seconds

 

I havent looked into the debug stuff yet how to use debugging etc. my first task was just to get something running on the screen :-)

 

Again thanks for taking the time to at this

Developer
Posts: 2,462
Registered: ‎11-04-2010
My Device: Bold 9700

Re: Application terminates right after it starts

hey reinholdt,

 

try running the following command instead:

 

 

<exec executable="${system.compilers.blackberry-airpackager}">
 <arg value="-installapp"/>
 <arg value="acmeajax.bar"/>
 <arg value="-device"/>
 <arg value="192.168.180.128"/>
 <arg value="-password"/>
 <arg value="1234"/>
</exec>

 

assuming you are in the directory with your bar file already created it should install the app onto your device and allow you to just click on the icon and open it thereafter. let me know how it turns out!

 

J. Rab (Blog) (Twitter)
--
1. If you liked my post or found it useful please click on the thumbs up and provide a Like!
2. If my post solved your problem please click on the Accept as Solution button. Much appreciated!

Approved Apps: OnTrack | ssShots | Hangman
New Contributor
Posts: 5
Registered: ‎12-08-2010
My Device: Not Specified

Re: Application terminates right after it starts

Hey JRab

 

I have just tryed running your command and it installs successfully, however the same thing is happening when I startup the application, I only get the small white square saying loading your application and then it terminates, it even terminates before the white square starts animating to fullscreen on the emulator.

 

 

Reinholdt

Developer
Posts: 2,462
Registered: ‎11-04-2010
My Device: Bold 9700

Re: Application terminates right after it starts

hey reinholdt,

 

hm perhaps there is an error in your code? does this happen to all the apps you try to install or just this one? try doing the same procedure for the AIRHelloWorld app on the getting started page. Here's the code:

 

 

package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import qnx.ui.buttons.Button;
	import qnx.ui.buttons.LabelButton;

 // The following metadata specifies the size and properties of the canvas that
 // this application should occupy on the BlackBerry PlayBook screen.
 [SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]
	public class AIRHelloWorld extends Sprite
	{
		public function AIRHelloWorld()
		{
			var helloButton:LabelButton = new LabelButton();
			helloButton.label = "Hello World!";
			helloButton.x = (stage.stageWidth - helloButton.width)/2;
			helloButton.y = (stage.stageHeight - helloButton.height)/2;
			
			var myFormat:TextFormat = new TextFormat();
			myFormat.color = 0xAA0000;   
			myFormat.size = 24;  
			myFormat.italic = true;  
			myFormat.align = "center";

			var text:TextField = new TextField();
			text.text = "Close";
			text.setTextFormat(myFormat);
			
			var closeButton:Button = new Button();
			closeButton.addChild(text);		
			closeButton.addEventListener(MouseEvent.CLICK, closeWindow);
			closeButton.x = (stage.stageWidth - closeButton.width)/2;
			closeButton.y = helloButton.y - helloButton.height;
			
			addChild(helloButton);
			addChild(closeButton);
			
			stage.nativeWindow.visible = true;
		}
		
		private function closeWindow(event:MouseEvent):void{
			stage.nativeWindow.close();
		}
	}
}

 

package that and then once you have a bar file install it via the code i gave you subsituting the name of the bar file. and see if it runs when you click on the icon. good luck!

 

J. Rab (Blog) (Twitter)
--
1. If you liked my post or found it useful please click on the thumbs up and provide a Like!
2. If my post solved your problem please click on the Accept as Solution button. Much appreciated!

Approved Apps: OnTrack | ssShots | Hangman
New Contributor
Posts: 5
Registered: ‎12-08-2010
My Device: Not Specified

Re: Application terminates right after it starts

 

The same thing is happening with the Helloworld example code.

 

I have tried downloading and installing a new simulator but without any luck, perhaps it has something to do with my application descriptor, here is the code that I am using.

 

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<application xmlns="http://ns.adobe.com/air/application/2.5">

 <id>ajax</id>

 <filename>acmeajax</filename>

 <name>acmeajax</name>

 <versionNumber>0.0.0</versionNumber>

 <copyright>acme</copyright>

 <initialWindow>

 <content>acme-ajax.swf</content>

 <title>acme-ajax</title>

     <systemChrome>none</systemChrome>

     <transparent>true</transparent>

 </initialWindow>

</application>

 

 

just to clarify here is the Actionscript code that I am using for my test:

 

 

package com.acme.ajax {
 import flash.display.Sprite;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 import flash.events.TimerEvent;
 import flash.utils.Timer;
 [SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]
public class Main_acme_ajax extends Sprite {
  private var timer:Timer;

  public function Main_acme_ajax() {
  this.stage.align = StageAlign.TOP_LEFT;
  this.stage.scaleMode = StageScaleMode.NO_SCALE;
  this.graphics.beginFill(0x00FF00);
  this.graphics.drawRect(10, 10, 100, 100);
  this.graphics.endFill();
  timer = new Timer(1000);
  timer.addEventListener(TimerEvent.TIMER, onTime );
  timer.start();
  stage.nativeWindow.visible = true;
  }
  private function onTime(event : TimerEvent) : void {
  trace("hello");
  }
  }
}

 

 

 

The package command I am using:

 

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #009721} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #160091} span.s1 {color: #160091} span.s2 {color: #000000} span.s3 {color: #009721} span.Apple-tab-span {white-spaceSmiley Tonguere}


<exec executable="${system.compilers.blackberry-airpackager}">

 <arg value="-package"/>

 <arg value="acmeajax.bar"/>

 <arg value="-installApp"/>

 <arg value="-launchApp"/>

 <arg value="acme-ajax-app.xml"/>

 <arg value="acme-ajax.swf"/>

 <arg value="assets"/>

 <arg value="-device"/>

 <arg value="${system.rim-ip}"/>

 <arg value="-password"/>

 <arg value="1234"/>

</exec>

 

 

Hopefully there is a minor thing that I am missing.

 

Any one that has a simple .bar application that I can try and install just to see if that will run?

 

again thanks.

 

/ Reinholdt

Developer
Posts: 2,462
Registered: ‎11-04-2010
My Device: Bold 9700

Re: Application terminates right after it starts

hey reinholdt,

 

from the looks of it your naming conventions seem to be off. the name of your main class must match the name of your descriptor file. For example, for the application AIRHelloWorld, the main application class file name is AIRHelloWorld.as and inside of that .as file the main funciton is called AIRHelloWorld(). Also make sure that your main application is in the default package. all subsequent classes can be in different classes. also the descriptor file for the AIRHelloWorld-app.xml. notice how it matches the AIRHelloWorld class name.

 

here i want you try this. start on a new project AIRHelloWorld. im going to assume you arent using flash builder so your going to have to do this manually. name the .as file AIRHelloWorld and place it in the src folder. here is the code for the AIRHelloWorld.as file:

 

 

package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import qnx.ui.buttons.Button;
	import qnx.ui.buttons.LabelButton;
	
	// The following metadata specifies the size and properties of the canvas that
	// this application should occupy on the BlackBerry PlayBook screen.
	[SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]
	public class AIRHelloWorld extends Sprite
	{
		public function AIRHelloWorld()
		{
			var helloButton:LabelButton = new LabelButton();
			helloButton.label = "Hello World!";
			helloButton.x = (stage.stageWidth - helloButton.width)/2;
			helloButton.y = (stage.stageHeight - helloButton.height)/2;
			
			var myFormat:TextFormat = new TextFormat();
			myFormat.color = 0xAA0000;   
			myFormat.size = 24;  
			myFormat.italic = true;  
			myFormat.align = "center";
			
			var text:TextField = new TextField();
			text.text = "Close";
			text.setTextFormat(myFormat);
			
			var closeButton:Button = new Button();
			closeButton.addChild(text);		
			closeButton.addEventListener(MouseEvent.CLICK, closeWindow);
			closeButton.x = (stage.stageWidth - closeButton.width)/2;
			closeButton.y = helloButton.y - helloButton.height;
			
			addChild(helloButton);
			addChild(closeButton);
			
			stage.nativeWindow.visible = true;
		}
		
		private function closeWindow(event:MouseEvent):void{
			stage.nativeWindow.close();
		}
	}
}

 

 

and now use the following code for the AIRHelloWorld-app.xml descriptor file which should also be placed under the src directory with the AIRHelloWorld.as file:

 

 

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.5">

<!-- Adobe AIR Application Descriptor File Template.

	Specifies parameters for identifying, installing, and launching AIR applications.

	xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.5
			The last segment of the namespace specifies the version 
			of the AIR runtime required for this application to run.
			
	minimumPatchLevel - The minimum patch level of the AIR runtime required to run 
			the application. Optional.
-->

	<!-- A universally unique application identifier. Must be unique across all AIR applications.
	Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
	<id>AIRHelloWorld</id>

	<!-- Used as the filename for the application. Required. -->
	<filename>AIRHelloWorld</filename>

	<!-- The name that is displayed in the AIR application installer. 
	May have multiple values for each language. See samples or xsd schema file. Optional. -->
	<name>AIRHelloWorld</name>
	
	<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. 
	Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
	An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
	<versionNumber>0.0.0</versionNumber>
		         
	<!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
	<!-- <versionLabel></versionLabel> -->

	<!-- Description, displayed in the AIR application installer.
	May have multiple values for each language. See samples or xsd schema file. Optional. -->
	<!-- <description></description> -->

	<!-- Copyright information. Optional -->
	<!-- <copyright></copyright> -->

	<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
	<!-- <publisherID></publisherID> -->

	<!-- Settings for the application's initial window. Required. -->
	<initialWindow>
		<!-- The main SWF or HTML file of the application. Required. -->
		<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
		<content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
		
		<!-- The title of the main window. Optional. -->
		<!-- <title></title> -->

		<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
		<!-- <systemChrome></systemChrome> -->

		<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
		<!-- <transparent></transparent> -->

		<!-- Whether the window is initially visible. Optional. Default false. -->
		<!-- <visible></visible> -->

		<!-- Whether the user can minimize the window. Optional. Default true. -->
		<!-- <minimizable></minimizable> -->

		<!-- Whether the user can maximize the window. Optional. Default true. -->
		<!-- <maximizable></maximizable> -->

		<!-- Whether the user can resize the window. Optional. Default true. -->
		<!-- <resizable></resizable> -->

		<!-- The window's initial width in pixels. Optional. -->
		<!-- <width></width> -->

		<!-- The window's initial height in pixels. Optional. -->
		<!-- <height></height> -->

		<!-- The window's initial x position. Optional. -->
		<!-- <x></x> -->

		<!-- The window's initial y position. Optional. -->
		<!-- <y></y> -->

		<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
		<!-- <minSize></minSize> -->

		<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
		<!-- <maxSize></maxSize> -->
	<autoOrients>true</autoOrients>
    <fullScreen>false</fullScreen>
    <visible>true</visible>
  </initialWindow>

	<!-- We recommend omitting the supportedProfiles element, -->
	<!-- which in turn permits your application to be deployed to all -->
	<!-- devices supported by AIR. If you wish to restrict deployment -->
	<!-- (i.e., to only mobile devices) then add this element and list -->
	<!-- only the profiles which your application does support. -->
	<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->

	<!-- The subpath of the standard default installation location to use. Optional. -->
	<!-- <installFolder></installFolder> -->

	<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
	<!-- <programMenuFolder></programMenuFolder> -->

	<!-- The icon the system uses for the application. For at least one resolution,
	specify the path to a PNG file included in the AIR package. Optional. -->
	<!-- <icon>
		<image16x16></image16x16>
		<image32x32></image32x32>
		<image36x36></image36x36>
		<image48x48></image48x48>
		<image72x72></image72x72>
		<image128x128></image128x128>
	</icon> -->

	<!-- Whether the application handles the update when a user double-clicks an update version
	of the AIR file (true), or the default AIR application installer handles the update (false).
	Optional. Default false. -->
	<!-- <customUpdateUI></customUpdateUI> -->
	
	<!-- Whether the application can be launched when the user clicks a link in a web browser.
	Optional. Default false. -->
	<!-- <allowBrowserInvocation></allowBrowserInvocation> -->

	<!-- Listing of file types for which the application can register. Optional. -->
	<!-- <fileTypes> -->

		<!-- Defines one file type. Optional. -->
		<!-- <fileType> -->

			<!-- The name that the system displays for the registered file type. Required. -->
			<!-- <name></name> -->

			<!-- The extension to register. Required. -->
			<!-- <extension></extension> -->
			
			<!-- The description of the file type. Optional. -->
			<!-- <description></description> -->
			
			<!-- The MIME content type. -->
			<!-- <contentType></contentType> -->
			
			<!-- The icon to display for the file type. Optional. -->
			<!-- <icon>
				<image16x16></image16x16>
				<image32x32></image32x32>
				<image48x48></image48x48>
				<image128x128></image128x128>
			</icon> -->
			
		<!-- </fileType> -->
	<!-- </fileTypes> -->

	<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
	<!--<android> 
		<manifestAdditions>
		<![CDATA[
			<manifest android:installLocation="auto">
				<uses-permission android:name="android.permission.INTERNET"/>
				<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
				<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
				<uses-configuration android:reqFiveWayNav="true"/>
				<supports-screens android:normalScreens="true"/>
				<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
				<application android:enabled="true">
					<activity android:excludeFromRecents="false">
						<intent-filter>
							<action android:name="android.intent.action.MAIN"/>
							<category android:name="android.intent.category.LAUNCHER"/>
						</intent-filter>
					</activity>
				</application>
			</manifest>
		]]>
		</manifestAdditions> 
	</android> -->
	<!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->

<android>
    <manifestAdditions><![CDATA[
	<manifest>
		<!-- See the Adobe AIR documentation for more information about setting Google Android permissions -->
		<uses-permission android:name="android.permission.INTERNET"/>
	</manifest>
]]></manifestAdditions>
  </android>
</application>

 

 

finally package those two items together and create your .bar file. the name of your bar file should be AIRHelloWorld.bar . after doing that install the app and run it on your simulator.

 

now im not sure if what i told you to do is in fact a requirement to have a successful application run, but i use flash builder and these are the steps that are taken every time i work on a project. the program does most of the heavy lifting but it follows these steps. let me know how it turns out! good luck!

J. Rab (Blog) (Twitter)
--
1. If you liked my post or found it useful please click on the thumbs up and provide a Like!
2. If my post solved your problem please click on the Accept as Solution button. Much appreciated!

Approved Apps: OnTrack | ssShots | Hangman
New Contributor
Posts: 5
Registered: ‎12-08-2010
My Device: Not Specified

Re: Application terminates right after it starts

Hi JRab

 

Thanks for the quick reply, I have just tested the code you provided and this is really annoying  it works hehe thanks I really appreciate it, as soon I figure out what the difference is I'll post em!

 

Again thanks

 

/ Reinholdt