首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adobe ANT Build -无法使用[Embed]标记

Adobe ANT Build -无法使用[Embed]标记
EN

Stack Overflow用户
提问于 2012-08-06 03:50:39
回答 1查看 1K关注 0票数 0

我试图使用ANT编译和打包使用Adobe的iOS IPA文件。我需要使用ANT,因为构建需要一吨RAM,Flash在编译时会出现Java堆空间问题(尽管我增加了ini文件中的最大内存)。

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

代码语言:javascript
复制
    <!-- 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>

我使用Flex 4.6SDK和Air3.4beta SDK,并使用SDK中的airMobileconfig.xml作为我的配置文件。

但是,当我运行这个程序时,我会得到以下错误:

代码语言:javascript
复制
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

如果我删除所有嵌入的音频标记,那么错误仍然存在,但是它抱怨'mx.core::ByteArrayAsset‘。如果我删除项目中的每个嵌入标记,那么它会编译ok。

我试图通过在代码中插入这一行来强制嵌入SoundAsset类:

代码语言:javascript
复制
import mx.core.SoundAsset;
...
new SoundAsset();

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

谁能告诉我如何在保存嵌入标签的同时通过ANT编译IPA文件?

EN

回答 1

Stack Overflow用户

发布于 2012-08-06 12:54:51

我已经解决了问题!

我认为问题出在我连接图书馆的方式上。最后,我删除了所有手工创建的ANT设置,而是导出了Flash项目中的设置,并使用了这些设置。

本文的全部细节,它拯救了我的生命:http://helpx.adobe.com/x-productkb/multi/compilation-results-flex-builder-flex.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11822363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档