6

我是 Adob​​eAir 的新手。我通过以下链接开始使用 helloworld 应用程序。

http://help.adobe.com/en_US/air/build/WS144092a96ffef7cc4c0afd1212601c9a36f-8000.html

我能够成功编译 HelloWorld.mxml 文件,但我无法按照命令 adl HelloWorld-app.xml 运行应用程序。错误消息显示.. 加载初始内容时出错。

我还附上了 HelloWorld-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.0">
    <id>samples.flex.HelloWorld</id>
    <version>0.1</version>
    <filename>HelloWorld</filename>
    <initialWindow>
        <content>HelloWorld.swf</content>
        <visible>true</visible>
        <systemChrome>none</systemChrome>
        <transparent>true</transparent>
        <width>400</width>
        <height>200</height>
    </initialWindow>
</application>

和 HelloWorld.mxml 是

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://`enter code here`ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" 
                       title="Hello World"> 

    <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> 
</s:WindowedApplication>

请帮我。

4

3 回答 3

8

中找到的 AIR 命名空间编号xmlns只是故事的一半。这定义了显示内容所需的最低运行时版本。故事的另一半是-swf-version编译的内容。

如果 SWF 是使用-swf-versionAIR adl 无法处理的更新版本编译的,您将收到“加载初始内容时出错”消息。

我从另一个答案中选择了这张表并添加了 AIR 版本信息(来源):

  SWF Version  |  Flash Player Version  |  AIR Version
---------------+------------------------+---------------
        9      |        9.0.115.0       |      N/A
       10      |        10.0, 10.1      |      1.5, 2.0
       11      |        10.2            |      2.6
       12      |        10.3            |      2.7
       13      |        11.0            |      3
       14      |        11.1            |      3.1
       15      |        11.2            |      3.2
       16      |        11.3            |      3.3
       17      |        11.4            |      3.4
       18      |        11.5            |      3.5
       19      |        11.6            |      3.6
       20      |        11.7            |      3.7
       21      |        11.8            |      3.8
       22      |        11.9            |      3.9
       23      |        12              |      4
       24      |        13              |      13
       25      |        14              |      14
       26      |        15              |      15
       27      |        16              |      16
       28      |        17              |      17
       29      |        18              |      18
       30      |        19              |      19
       31      |        20              |      20
       32      |        21              |      21
       33      |        22              |      22
       34      |        23              |      23
       35      |        24              |      24
       36      |        25              |      25
       37      |        26              |      26
       38      |        27              |      27
       39      |        28              |      28
       40      |        29              |      29
       41      |        30              |      30
       42      |        31              |      31

您可以使用Flex 和 AIR SDK 中包含-swf-version的实用程序来确定 SWF 文件的格式。swfdump

> swfdump example.swf | grep -i '<swf'
<swf xmlns='http://macromedia/2003/swfx' version='18' framerate='24' size='10000x7500' compressed='false' >

上面的 SWF 是用 AIR 3.5 或更高版本编译的-swf-version=18,因此需要 AIR 3.5 或更高版本,并且xmlns="http://ns.adobe.com/air/application/3.5"

另请注意,较新的工具仍然可以针对较旧的-swf-versions. 因此,您可以构建与旧版 AIR 和 Flash 播放器兼容的 SWF。请注意检查您在文档中使用的 API。一些较新的 API(如BitmapData.drawWithQuality )在Runtime Versions下列出了最低播放器版本要求。

于 2013-09-30T17:11:11.610 回答
7

Thank you, your answer helped to solve my issue with IntelliJ Idea and the latest FLEX/AIR package. To solve that error I had to provide a modified application descriptor file for my module, since the automatically generated one had this setting:

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

Here the steps needed to create a custom application descriptor file:

File - Projext Structure - Modules - AIR Package - Custom template - Create

Pick your minimal AIR version (actually for Flex 4.10 I think it is AIR 3.8) and your module will compile and run without problems.

See screenshot here

于 2013-08-11T11:46:21.983 回答
7

根据这篇博文,您应该检查 HelloWorld-app.xml 中的命名空间行是否与您的 AIR 版本匹配。

例如,使用 Flex 4.6 发行版附带的 mxml/adl 工具,正确的命名空间行似乎是

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

您的 mxmlc 或 amxmlc 编译器也必须不是来自比 adl 更新的 SDK。

例如,您不能在 AIR 2.6 的 adl 中运行使用 Flex 4.6 编译的 AIR 应用程序,您需要 Flex 4.5 工具来实现这一点。

于 2013-03-21T13:37:24.950 回答