Flash Builder Flex项目,嵌套的.swms导致“多重定义”冲突

时间:2012-03-28 10:36:25

标签: actionscript-3 flex

我有一些flex / AS3代码(来自第三方),我必须改变以满足我的需求。由于我的预算,我被限制使用FlashDevelop - 这意味着第三方不愿意提供太多支持(他们使用FlashBuilder)

该解决方案由大约10个“子”项目组成,其中大多数项目在其库中使用spark.swc和spark_rb.swc

使用Export SWC插件将这10个项目编译成.swc。每个“子”项目都会成功编译。

然后我在主项目中使用那些.swc文件。

我尝试过将spark.swc和spark_rb.swc添加到“子”项目库(“包含引用的类”,“完全包含”,“未包含”)的每个组合,并且类似地添加了每个组合“sub”.swcs到main - 并且在构建类似于的主项目时仍然遇到编译错误:

Error: Symbol 'en_US$components_properties' is multiply defined in
C:\flex_sdk_4.1.0.16076A\frameworks\locale\en_US\spark_rb.swc$locale/en_US/components.properties 
and C:\Path\To\Folder\SubProject1.swc(en_US$components_properties)

我没有在主项目的库中包含spark.swc或spark_rb.swc。

我应该如何使用共享.swc代码的.swc文件?或者 - 我问错了问题,应该做些不同的事情吗?

1 个答案:

答案 0 :(得分:0)

这个设置没问题,你需要做的是避免在导出它们时将已经包含在其他库中的类编译到你的库中。

我不知道如何在FlashDevelop的导出SWC中执行此操作,但在Ant中它非常简单(如果您愿意,甚至可以使用命令行):

  1. 在编译时生成链接报告(-link-report=report.xml) 您的应用:它将包含有关您主要SFW中编译内容的信息。
  2. 使用-load-externs=report.xml编译所有子项目:这样 已包含在主SFW中的类将不会被编译 子导出文件。
  3. 您可以在此处详细了解: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7d1f.html#WS2db454920e96a9e51e63e3d11c0bf64277-7ffa

    希望有所帮助。