为什么我在发布版本中遇到Stack下溢(错误1024)?

时间:2011-10-30 21:34:03

标签: actionscript-3 debugging actionscript flexbuilder stackunderflow

我遇到了这个奇怪的问题,堆栈下溢错误只发生在Flex Builder项目的发布版本中。我环顾网络寻找解决方案,但是当我发现一些相关的帖子时,没有什么能真正帮助我。所以这里是这个问题和我在答案中的解决方案,以便它可能有助于其他人。

问题:我将一个java程序(游戏)移植到flex,它在Android,Web和Playbook的调试模式下运行良好。但是,当我构建游戏的发布版本时,它会崩溃。根据Adobe的文档,报告的错误是1024,即堆栈下溢。

起初,我认为问题仅限于Playbook,但不是,完全相同的问题发生在网络浏览器和Android的完全相同的位置。根据我插入的调试信息,我发现在调用另一个函数期间,异常似乎被抛出

1 个答案:

答案 0 :(得分:1)

为了解决这个问题,我在许多单独的函数中分解了违规函数,从而缩小了导致问题的精确部分代码。这引出了几行代码,这些代码具有以下调用(在try-catch中):

trace(e.getStackTrace())()

Hummm,这显然是由我用来重构从Java到Actionscript的正则表达式产生的。删除extra()可以解决问题。

这是我希望编译器捕获的东西,而不是只在发布时让它失败,当包含违规代码的函数被压入堆栈时。