更新*仅* Flex Web应用程序时,“Flex错误#1001:与RSL的摘要不匹配”

时间:2014-01-17 14:50:16

标签: flex ant rsl

当我更新Flex Web应用程序的swf文件时,我收到以下错误:

Flex错误#1001:摘要与RSL不匹配

我理解为什么会发生这种情况(因为RSL的catalog.xml中的摘要与Flex Web应用程序的swf文件所期望的不一致)但是找不到成功更新Flex Web的方法应用。我的问题是如何使用ANT和Flex 3.6 SDK完成这项工作?

我试图让Flex Web应用程序通过在所有RSL的compc标记上将'compute-digest'属性设置为false来忽略摘要值:

<compc compiler.as3="true" 
  output="${temp-swc-dir}/@{name}.swc" 
  incremental="false" 
  fork="false" 
  compiler.show-deprecation-warnings="false" 
  compiler.verbose-stacktraces="${VERBOSE}" 
  compute-digest="false"
  >

但是当执行mxmlc时,它没有提及摘要。我的mxmlc标签中是否有需要更改的内容?

<mxmlc file="${target-dir}/@{build-directory}/revolution/src/${SWF_NAME}.mxml" 
    output="${target-dir}/@{build-directory}/${SWF_NAME}.swf" 
    actionscript-file-encoding="UTF-8" 
    keep-generated-actionscript="false" 
    incremental="false" 
    debug="@{qa-build}" 
    fork="false" 
    static-link-runtime-shared-libraries="false" 
    use-network="true"
    >

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/as3corelib.swc">
        <url rsl-url="rsl/as3corelib.swf" />
    </runtime-shared-library-path>

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/asx.swc">
        <url rsl-url="rsl/asx.swf" />
    </runtime-shared-library-path>

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/top-level-tools.swc">
        <url rsl-url="rsl/top-level-tools.swf" />
    </runtime-shared-library-path>

    <source-path path-element="${target-dir}/@{build-directory}/revolution/src" />

    <!-- list of path elements that form the roots of ActionScript class hierarchies. -->
    <source-path path-element="${FLEX_HOME}/frameworks" />

    <!-- list of SWC files or directories that contain SWC files. -->
    <compiler.library-path dir="${FLEX_HOME}/frameworks/libs" append="true">
        <include name="framework.swc" />
    </compiler.library-path>

    <compiler.library-path dir="${target-dir}/@{build-directory}/swc" append="true">
        <include name="*.swc" />
    </compiler.library-path>

    <compiler.library-path dir="${target-dir}/@{build-directory}/revolution/libs" append="true">
        <include name="*.swc" />
    </compiler.library-path>

</mxmlc>

1 个答案:

答案 0 :(得分:0)

我认为Flex附带了一个更新摘要的工具。它被称为“摘要”。我记录了在我的Wiki中从第三方SWC库创建RSL所需的步骤...对我来说,看起来你的RSL和SWC不再匹配。 https://dev.c-ware.de/confluence/display/PUBLIC/Creating+RSLs+from+your+3rd+party+libs 因此,如果您只是从正在使用的SWC创建RSL,那么您应该是安全的。