【问题标题】:Adobe ADT ANT Build - Unable to use [Embed] TagsAdobe ADT ANT Build - 无法使用 [嵌入] 标签
【发布时间】:2012-08-06 20:54:51
【问题描述】:

我正在尝试使用 ANT 通过 Adob​​e SDK 工具编译和打包 iOS IPA 文件。我需要使用 ANT,因为构建需要大量 RAM,并且 Flash Builder 在我编译时会遇到 Java 堆空间问题(即使我已经增加了 ini 文件中的最大 ram)。

这就是我的 ANT 构建的核心:

    <!-- Build the SWF and save it in the publish directory --> 
<target name="3. Compile SWF" depends="2. Build New Directories"> 
    <mxmlc 
        file="${MAIN_CLASS}" 
        output="${OUTPUT_SWF}" 
        debug="${DEBUG_FLAG}" 
        failonerror="true">         
        <load-config filename="${MOBI_CONFIG_FILE}"/>
        <define name="MOBI_PROJECT::IS_iOS_BUILD" value="${IS_iOS_BUILD}" />
        <define name="MOBI_PROJECT::DEBUG" value="${DEBUG_FLAG}" />
        <source-path path-element="${MOBI_DIR}/src"/>

        <library-path file="${FLEX_HOME}/frameworks/locale/en_US" append="true"/>
        <library-path dir="${MOBI_LIB_RELEASE_DIR}" includes="*.swc" append="true"/>

        <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
            <include name="libs/*" />
        </compiler.library-path>

        <compiler.external-library-path dir="${FLEX_HOME}/frameworks/libs/air">
            <include name="**/*.swc" />
        </compiler.external-library-path>
        <compiler.external-library-path dir="${FLEX_HOME}/frameworks/libs">
            <include name="**/*.swc" />
        </compiler.external-library-path>           
        <compiler.external-library-path dir="${FLEX_HOME}/frameworks/libs/mx">
            <include name="**/*.swc" />
        </compiler.external-library-path>
    </mxmlc>
</target>

<!-- Package the application to an ipa file & save it in the publish directory --> 
<target name="4. Package Application" depends="3. Compile SWF"> 
    <java jar="${ADT}" fork="true" failonerror="true"> 
        <arg value="-package"/>
        <arg value="-target"/>
        <arg value="ipa-test"/>

        <arg value="-provisioning-profile"/>
        <arg value="${iOS_PROVISIONING}"/>

        <arg value="-storetype"/>
        <arg value="pkcs12"/>

        <arg value="-keystore"/>
        <arg value="${iOS_KEYSTORE}"/>

        <arg value="-storepass"/>
        <arg value="${iOS_PASS}"/>

        <arg value="${IPA_FILE}"/>
        <arg value="${APP_DESCRIPTOR}"/>
        <arg value="${OUTPUT_SWF}"/>
    </java> 
</target>

我正在使用带有 Air 3.4 beta SDK 的 Flex 4.6 SDK,并使用 SDK 中的 airmobile-config.xml 作为我的配置文件。

但是当我运行它时,我收到以下错误:

4. Package Application:
 [java] Exception in thread "main" java.lang.Error: Unable to find named traits: mx.core::SoundAsset
 [java]     at adobe.abc.Domain.resolveTypeName(Domain.java:232)
 [java]     at adobe.abc.Domain.resolveTypeName(Domain.java:149)
 [java]     at adobe.abc.GlobalOptimizer$InputAbc.resolveTypeName(GlobalOptimizer.java:272)
 [java]     at adobe.abc.GlobalOptimizer$InputAbc.readInstance(GlobalOptimizer.java:1000)
 [java]     at adobe.abc.GlobalOptimizer$InputAbc.readAbc(GlobalOptimizer.java:390)
 [java]     at adobe.abc.GlobalOptimizer$InputAbc.readAbc(GlobalOptimizer.java:278)
 [java]     at adobe.abc.LLVMEmitter.generateBitcode(LLVMEmitter.java:320)
 [java]     at com.adobe.air.ipa.AOTCompiler.convertAbcToLlvmBitcodeImpl(AOTCompiler.java:516)
 [java]     at com.adobe.air.ipa.BitcodeGenerator.main(BitcodeGenerator.java:80)
 [java] Compilation failed while executing : ADT

如果我删除了所有 [Embed] 音频标签,则错误仍然存​​在,但它抱怨“mx.core::ByteArrayAsset”。如果我删除项目中的每个 [Embed] 标记,则它可以编译。

我试图通过将这一行放入我的代码中来强制嵌入 SoundAsset 类:

import mx.core.SoundAsset;
...
new SoundAsset();

我什至进入了 Flex SDK 并复制了 SoundAsset 和 ByteArrayAsset 类并将它们放入我的项目中,但是这些都没有帮助。

谁能告诉我如何通过 ANT 编译 IPA 文件同时仍保留我的 [Embed] 标签?

【问题讨论】:

  • 尝试从 FLEX_SDK/frameworks/libs 目录手动添加 core.swc 文件
  • 我刚刚按照建议尝试了以下操作,但仍然出现相同的错误。
  • 好的,所以我发现是 [Embed] 标签导致构建失败,但我真的需要这些标签,所以我需要找到解决方法。

标签: actionscript-3 ant air adobe adt


【解决方案1】:

我已经解决了这个问题!

认为问题出在我链接到库的方式上。我最终删除了所有我手工制作的 ANT 设置,而是从我的 Flash Builder 项目中导出设置,然后只使用这些设置。

这篇文章的全部细节在这里,它救了我的命: http://helpx.adobe.com/x-productkb/multi/compilation-results-flex-builder-flex.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2011-05-31
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多