Почему при сборке релиза я получаю переполнение стека (ошибка 1024)? - PullRequest
1 голос
/ 31 октября 2011

У меня была эта странная проблема с ошибками переполнения стека, возникающими только в выпускной сборке проекта Flex Builder. Я искал в Интернете, чтобы найти решение, но, хотя я нашел несколько связанных постов, ничто действительно не помогло мне. Вот этот вопрос и мое решение в ответах, так что, надеюсь, он поможет другим людям.

Проблема : я портировал java-программу (игру) на гибкий, и она отлично работает в режиме отладки на Android, в Интернете и Playbook. Однако, когда я делаю релизную версию игры, она вылетает. Согласно сообщению Adobe, сообщается об ошибке 1024, т. Е. О недостаточном количестве стеков.

Сначала я думал, что проблема ограничена только Playbook, но нет, точно такая же проблема происходит в одном и том же месте в веб-браузере и Android. Из информации отладки, которую я вставил, я обнаружил, что исключение, похоже, выдается во время вызова другой функции.

1 Ответ

1 голос
/ 31 октября 2011

Чтобы решить проблему, я разбил функцию-нарушитель во многих отдельных функциях и так сузил, какая именно часть кода вызывает проблемы.Это привело меня к нескольким строкам кода, которые имели следующий вызов (в try-catch):

trace(e.getStackTrace())()

Хммм, это, очевидно, было создано регулярным выражением, которое я использовал для рефакторинга из Java в Actionscript.Удаление extra () решает проблему.

Это то, что я хотел бы, чтобы компилятор ловил вместо того, чтобы позволить ему завершиться ошибкой только при выпуске, когда функция, содержащая код, вызывающий сбой, помещается в стек.

...