【发布时间】:2011-06-21 00:06:26
【问题描述】:
如果在我运行 Flex 3.5 构建时行星未正确对齐,则生成的 .swf 会立即从 _MyAppWatercherSetupUtil 抛出空对象错误:
对此我有什么办法吗?
我尝试过调试它,但似乎 Flex 框架竭尽全力确保无法调试生成的代码……
【问题讨论】:
-
有机会了解您的装订方式吗?看起来你的绑定表达式有一些在评估时没有创建的东西。
-
这是应用程序的主 MXML 文件,因此正在进行一堆绑定。您所说的“绑定表达式具有在评估时未创建的内容”是什么意思? (有可能,我只是不确定我是否理解)
-
@David 我对代码进行了一些研究,以查看该错误可能发生的情况,但没有什么明显的问题出现在我身上,您可以将开源代码链接到您的 swc,然后在其中放置断点(在eclipse中按ctrl+alt+t根据类名打开)然后看看那一行到底出了什么问题,有问题的行是2131:IUIComponent(child).initialize(); // 调用 child.createChildren() 所以如果那个时候的孩子是 null 或者不是 IUIComponent 我可以理解错误,为什么会发生是一个谜。
-
@David 你也试过其他版本的SDK,结果有什么变化吗?另外,您是否依赖于针对不同版本的 SDK 编译的其他 swcs 或任何类似的内容(尽管这与我们在混合 3.2 和 3.4 时收到的错误不同,但由于奇怪的 mojo,我们确实遇到了由此引起的问题Flex 用于从依赖项中解析类)。
-
@shaunhusain 我已经尝试使用调试器单步执行,但收效甚微。打破
IUIComponent(child).initialize(),一切看起来都合乎情理(child是MyApp,IIRC 的一个实例),但是由于没有可用于生成代码的调试信息,因此进一步跟踪执行变得困难。
标签: apache-flex flex3