加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 将ant mxmlc任务与原生扩展一起使用

发布时间:2020-12-15 01:48:32 所属栏目:百科 来源:网络整理
导读:我有一个AIR应用程序,我正在编译移动.有一个iOS原生扩展( JamPot MobileBackup),在IDE中使用时编译很好. 但是,IDE现在还不足以支持其他平台,我决定构建一个Ant脚本来运行构建过程. 问题是这个特定的ANE似乎在扩展代码中定义了MobileBackup类,而不是像我正在
我有一个AIR应用程序,我正在编译移动.有一个iOS原生扩展( JamPot MobileBackup),在IDE中使用时编译很好.

但是,IDE现在还不足以支持其他平台,我决定构建一个Ant脚本来运行构建过程.

问题是这个特定的ANE似乎在扩展代码中定义了MobileBackup类,而不是像我正在使用的其他ANE那样在单独的.as文件中定义.

这是我看到的错误:

[mxmlc] Loading configuration file /Users/anderson/src/flex/4.6.0/frameworks/airmobile-config.xml
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 35 Error: Type was not found or was not a compile-time constant: MobileBackup.
[mxmlc] 
[mxmlc]         private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc]                                         ^
[mxmlc] 
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 54 Error: Call to a possibly undefined method MobileBackup.
[mxmlc] 
[mxmlc]         private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc]                                                            ^
[mxmlc] 
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(32): col: 54 Error: Call to a possibly undefined method MobileBackup.
[mxmlc] 
[mxmlc]         private static var mobileBackup:MobileBackup = new MobileBackup();
[mxmlc]                                                            ^
[mxmlc] 
[mxmlc] /Users/anderson/src/xxx/src/xxx/Utility.as(21): col: 35 Error: Definition ie.jampot.nativeExtensions:MobileBackup could not be found.
[mxmlc] 
[mxmlc]     import ie.jampot.nativeExtensions.MobileBackup;

mxmlc调用如下所示:

<mxmlc 
   file="${app.main.class.file}" 
   output="${build.output.swf.file}" 
   locale="${LOCALE}" 
   static-rsls="false" 
   accessible="false" 
   configname="airmobile" 
   debug="${build.debug.mode}" 
   failonerror="true" 
   fork="true" 
   maxmemory="512m">
  <source-path path-element="${app.src.path}"/>
  <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
<include name="libs/*" />
  </compiler.library-path>
  <library-path file="${FLEX_HOME}/frameworks/locale/${LOCALE}" append="true"/>
  <library-path dir="${spicelib.lib.path}" includes="*.swc" append="true"/>
  <library-path dir="${parsley.lib.path}" includes="*.swc" append="true"/>
  <library-path dir="${app.lib.path}" includes="*.swc" append="true"/>
  <external-library-path file="${AIR_GLOBAL}" append="true"/>
  <external-library-path dir="${app.ane.path}" includes="*.ane" append="true"/>
  <define name="CONFIG::DESKTOP" value="${output.config.environment.desktop}"/>
  <define name="CONFIG::IOS" value="${output.config.environment.ios}"/>
  <define name="CONFIG::ANDROID" value="${output.config.environment.android}"/>
  <define name="CONFIG::PRODUCTION" value="${output.config.environment.production}"/>
  <define name="CONFIG::STAGING" value="${output.config.environment.staging}"/>
  <define name="CONFIG::LOCAL" value="${output.config.environment.local}"/>
</mxmlc>

其中app.ane.path是项目的.ane文件集合的路径.

我也尝试过使用library-path而不是external-library-path.

除了添加build.xml之外,我根本没有改变Flash Builder项目的布局或内容,它仍然可以在IDE中编译.

我需要做什么才能在IDE之外进行编译?

解决方法

我把这一切都搞定了,并决定在发布之前再做一次尝试.我想通了,所以我会在这里发布其他人的结果.

Flash Builder必须将SWC从ANE中拉出来以供mxmlc使用.我在其他地方找到了SWC的副本,并将其添加到我的libs文件夹中,嘿presto,它的工作原理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读