Search code examples
airpackaging

Unable to export an AIR release build with icons specified in the app.xml


I keep getting an error when I try to export a release AIR build:

Error creating AIR file:Foo-app.xml: error 303: Icon /C:/Users/Fred/AppData/Local/Temp/assets/icon_16.png is missing from package

Directory looks like:

Foo/
  src/
  assets/
  bin/

app-xml specifies the icons as

<icon>
  <image16x16>assets/icon_16.png</image16x16>
  <image32x32>assets/icon_32.png</image32x32>
  <image48x48>assets/icon_48.png</image48x48>
<!-- <image128x128>assets/icon_128.png</image128x128>    -->
</icon>

I've tried moving the assets/ directory under the bin/ and putting a parent pronoun (..) in the tag.

I embed the images in the application thus:

        [Embed(source="../assets/biocurious_logo.png")]
        public var applicationIconClass : Class;

        [Embed(source="../assets/biocurious_eye_16_16.png")]
        public var applicationIcon16Class : Class;

        [Embed(source="../assets/biocurious_eye_32_32.png")]
        public var applicationIcon32Class : Class;

        [Embed(source="../assets/biocurious_logo_48_48.png")]
        public var applicationIcon48Class : Class;

        [Embed(source="../assets/biocurious_logo_128_128.png")]
        public var applicationIcon128Class : Class;

The compiler does not complain that it cannot find the files.

I've done the indicated searches here and using Google in general. I have no idea what to try next.

Any ideas?


Solution

  • So a couple things jump out at me on this.

    1. If the image is embedded in the application, are you also trying to use it somehow in the deployment / installation (ie desktop icon)? If not, then you shouldn't have to even reference it as part of the deployment package - this will have already been included in the swf.
    2. The image name in the application.xml is different than the source image you have referenced in code, and also a different source-path to it (ie ../assets and assets/).

    If neither one of these leads you down the right path, you can always validate that the .air file has the sources in it by opening it in a standard compression program (.air is a lot like a .swc in the sense that it's nothing more than a zipped up package).