4 Replies Latest reply on Mar 25, 2011 6:37 AM by Batkinz

    Example working Flex AIR app for Android?

    icanoop

      I'm having trouble getting even the most basic AIR app working on Android. Here is the code:

       

      <?xml version="1.0" encoding="utf-8"?>
      <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                              xmlns:s="library://ns.adobe.com/flex/spark"
                              xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*"
                              width="600" height="600">
           <fx:Declarations>
               <!-- Place non-visual elements (e.g., services, value objects) here -->
           </fx:Declarations>
           <mx:Label text="Hello World"/>
      </s:WindowedApplication>

       

      It works fine running on  Windows in Flash Builder, obviously it's pretty simple. Here are the  commands I use to put it on a Samsung Galaxy Tab with Android 2.2.

       

      C:\Users\Ryan\Adobe  Flash Builder 4\Test2\bin-release>adt -package -storetype pkcs12  -keystore C:\Users\Ryan\STG-Android.pfx Test2.air Test2-app.xml  Test2.swf
      password:
      C:\Users\Ryan\Adobe Flash Builder 4\Test2\bin-release>adt -package  -target apk -storetype pkcs12 -keystore C:\Users\Ryan\STG-Android.pfx  Test2.apk Test2-app.xml Test2.swf
      password:
      test
      C:\Users\Ryan\Adobe Flash Builder 4\Test2\bin-release>adb install -r Test2.apk
      2286 KB/s (419172 bytes in 0.179s)
               pkg: /data/local/tmp/Test2.apk
      Success

       

      A Test2 app icon shows up on my Galaxy Tab  under Applications but when I run the app I just see a plain white  screen, I don't see the words "Hello World". Any ideas? Does anyone have  an example Flex AIR app that works on Android and can post the code so I  can try it on my Galaxy Tab? I know AIR is installed correctly on my  Galaxy because I installed an AIR app called South Park Avatar Creator  that I got from the market and it works fine.

       

      Thanks,

      Ryan

       

      P.S.  Here is the Test2-app.xml from my non-working project above in case it  helps. This is the default generated with a new Flex app in Flash  Builder 4 using the Flex 4.1.0 AIR 2.5 SDK but I uncommented the andoid  tags and set the visible tag to true.

       

      <?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>Test2</id>

       

          <!-- Used as the filename for the application. Required. -->
           <filename>Test2</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>Test2</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>1.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>true</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> -->
           </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 -->

       

      </application>