2

我需要设置一个允许构建空中应用程序的连续环境,因此我必须设置一些 ANT 脚本来编译我的闪存然后打包它。

我遇到了 flex 任务 mxmlc,它是构建 .swf 的基本工具。

我已经使用此工具设置了一个基本构建文件,但我的项目使用 .ANE,并且我无法将它们包含在我的 swf 编译中。我最终会遇到错误,因为许多类是未知的。

这是我的构建文件:

<property
    name="AIR_SDK_HOME" value="${basedir}/Flex 4.6.0" />    

<property
    name="FLEX_HOME" value="${basedir}/Flex 4.6.0" />   

<property
    name="FLEX_TASKS" value="${FLEX_HOME}/ant/flexTasks.tasks" />       

<property
    name="ADT" value="${SDK}/bin/adt" />        

<property
    name="MXMLC" value="${SDK}/bin/amxmlc" />   


<taskdef resource="flexTasks.tasks" classpath="flexTasks.jar"/> 


<target name="compile">
    <mxmlc file="${basedir}/src/Main.as"
        output="${basedir}/bin-debug/HR_2012_IPAD.swf"
        locale="en_US"
        static-rsls="true"
        accessible="true"
        configname="airmobile"
        debug="true"
        failonerror="true"
        fork="true"
        maxmemory="512m">
        <source-path path-element="${FLEX_HOME}/frameworks"/>
        <source-path path-element="${basedir}/src"/>
        <source-path path-element="${basedir}/gestouch"/>  
        <compiler.library-path dir="${basedir}/lib" />

        <compiler.external-library-path dir="${basedir}" append="true">
            <include name="lib/*" />
        </compiler.external-library-path>

        <library-path dir="${basedir}/lib" includes="*.swc,*.ane" append="true"/>
        <library-path dir="${SDK}/frameworks/locale/en_US" includes="*.swc" append="true"/>

    </mxmlc>
</target>

如果有人已经成功地使用 mxmlc 包含 .ane,我很想听听一个解决方案。

干杯伙计们!

4

1 回答 1

0

将路径以及 .ane 文件名添加到-external-library-path对我有用。

编辑:在您的目标中,您可能只需要将其更改为显式查看 .ane 文件:

<compiler.external-library-path dir="${basedir}" append="true">
   <include name="lib/yourExtension.ane" />
</compiler.external-library-path>

这就是我使用它的方式(${compiler.arguments} 是可选的 - 您可以使用它将信息传递给编译器,例如为条件编译定义标签,如下所示:CONFIG::debug_trace,true):

<target name="build" depends="set build type, copy extension packages, copy files for building">
        <exec executable="${MXMLC}" failonerror="true">
            <arg line="
                ${compiler.arguments}
                +configname=airmobile
                -debug=${build.debug}
                -output ${app.builddir}/${app.name}.swf
                ${app.main.file} 
                -source-path+=${app.sourcedir}
                -external-library-path+=${ext.extensiondir}/${ext.file}
                -library-path+=${app.libs}
                -incremental=true
            "/>
        </exec>
    </target>

这是我为我们的书Easy Native Extensions编写的连续环境构建脚本的摘录(目标是构建 ANE,即使用 ANE 的应用程序,只需单击一下即可在设备上安装应用程序)。

于 2013-06-14T10:27:15.510 回答