1

我正在尝试使用 ANT 构建一个 SWC(在 Flex 4.6 中)。这就是我的 build.xml 现在的样子

<?xml version="1.0" encoding="UTF-8"?>
<project name="imanager-framework" basedir=".">

    <property name="src" location="src"/>   
    <property name="dist" location="dist"/> 
    <property name="FLEX_HOME" value="C:/Program Files (x86)/Adobe/Adobe Flash Builder 4.5/sdks/4.6.0"/>        

    <taskdef resource="flexTasks.tasks" classpath="${basedir}/libs/flexTasksFlash4.jar"/>

    <target name="clean">       
        <delete dir="${dist}"/>
    </target>

    <target name="compile">
        <mkdir dir="${dist}"/>
        <compc output="${dist}/imanager-framework.swc">
            <source-path path-element="src" />
            <library-path dir="libs" includes="*" />
            <include-sources dir="${src}" includes="*" />           
        </compc>
    </target>

</project>

flexTasks.tasks 看起来像这样

mxmlc=flex.ant.MxmlcTask
compc=flex.ant.CompcTask
html-wrapper=flex.ant.HtmlWrapperTask
asdoc=flex.ant.AsDocTask

当我运行构建时,我得到了这个错误

Buildfile: E:\flexspace\imanager\framework\build.xml
compile:
    [compc] Loading configuration file C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5\sdks\4.6.0\frameworks\flex-config.xml
    [compc] Error: unable to load SWC flexTasksFlash4.jar: could not find catalog.xml within the SWC.

BUILD FAILED
E:\flexspace\imanager\framework\build.xml:16: compc task failed

Total time: 639 milliseconds

看来 compc 正试图将 flexTasks jar 作为 SWC 读取。这里发生了什么?

4

1 回答 1

1

似乎,您jar的任务定义库与libs所有swc文件一样位于目录中,编译器尝试将其用作swc库。由于jarswc都是存档,编译器会提取它们并尝试在其中查找catalog.xml,但 jar 不是 flash 库并且不包含它。我建议你把 jar 放到另一个位置,只swc在 lib 中保留文件。或指定swc模式

<library-path dir="libs" includes="*.swc" />
于 2012-10-31T13:34:23.250 回答