使用 debug=false 进行 Flex (Flash Builder 4) 编译会导致在 debug=true 时不会发生的错误

问题描述 投票:0回答:1

我们有一个相当大的 Flex 应用程序,我们的 QA 出现了随机但可重现的错误,而 Flex 开发人员无法重现这些错误。 其中一些错误是从 Flash Player 调试版本中引发的,例如:

ReferenceError: Specified ApplicationDomain does not contain the class ::LineSeriesLegendMarker
    at org.spicefactory.lib.reflect::ClassInfo$/getClassDefinitionByName()
    at org.spicefactory.lib.reflect::ClassInfo$/getClassInfo()
    at org.spicefactory.lib.reflect::ClassInfo$/forInstance()
    at org.spicefactory.parsley.core.view.impl::DefaultViewConfigurator/getDefinitionByType()
    at org.spicefactory.parsley.core.view.impl::DefaultViewConfigurator/getDefinition()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/processAutowireEvent()
    at org.spicefactory.parsley.core.view.util::ContextAwareEventHandler/handleEvent()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/handleAutowireEvent()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at org.spicefactory.parsley.core.view.handler::ViewAutowireHandler/prefilterView()
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::$addChildAt()
    at mx.core::Container/addChildAt()
    at mx.core::Container/addChild()
    at mx.charts::Legend/addLegendItem()
    at mx.charts::Legend/populateFromArray()
    at mx.charts::Legend/commitProperties()
    at mx.core::UIComponent/validateProperties()
    at mx.managers::LayoutManager/validateProperties()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()

其他错误包括组合框未正确填充以及似乎只是一般计时问题。

我想强调的是,我们已将范围缩小到我们的主 SWF,除了 mxmlc 参数 -debug=true 与 -debug=false 之外,没有其他变量。 有其他人遇到过这种情况或者知道为什么构建会导致不同的行为吗?

debugging apache-flex flex4 parsley
1个回答
0
投票

你将不得不展示更多的代码;主要是你的欧芹配置。

debug=true 和 debug=false 之间的区别在于 debug=true 不会在最终产品中跟踪错误。您的开发人员应该始终以 debug=true 运行并安装 Flash Player Debug。

另外,我很好奇为什么 Parsley 需要了解视图组件。 您使用配置标签吗? 我建议您不要使用它,而是将 FastInject 与适当的演示者模型一起使用,这更有利于可测试性。 配置意味着 Parsley 必须反映您视图中的所有属性,这是无用且耗时的。 我保证如果您使用 FastInject 而不是配置,您的问题就会消失。 除非您尝试将视图注入组件,但您不应该这样做。 如果是这种情况,您需要以更好的方式构建您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.