1

스택 언더 플로 오류와 관련된 이상한 문제는 Flex Builder 프로젝트의 릴리스 빌드에서만 발생합니다. 솔루션을 찾기 위해 웹을 둘러 보았습니다. 그러나 관련 게시물을 찾았지만 실제로는 도움이되지 않았습니다. 그래서 여기에이 질문과 답안에 대한 해결책이 있습니다. 그래서 다른 사람들을 도울 수 있습니다.릴리스 빌드에서 스택 언더 플로우 (1024 오류)가 발생하는 이유는 무엇입니까?

문제 : 자바 프로그램 (게임)을 flex로 이식했고 Android, 웹 및 플레이 북의 디버그 모드에서 제대로 작동합니다. 그러나 게임의 릴리스 버전을 빌드하면 충돌이 발생합니다. Adobe의 설명서에 따르면보고 된 오류는 스택 언더 플로 1024와 같이 1024입니다.

처음에는 문제가 플레이 북에만 국한된 것이라고 생각했지만, 똑같은 문제는 웹 브라우저와 Android에서 정확히 같은 위치에서 발생합니다. 삽입 한 디버깅 정보에서 다른 함수 호출시 동안 예외가 throw 된 것으로 나타났습니다.

답변

1

이 문제를 해결하기 위해 많은 개별 기능에서 문제가되는 기능을 해독하여 문제의 원인이되는 코드의 정확한 부분을 좁혔습니다. 이것은 (시도 - 캐치에서) 다음 전화를했다 몇 줄의 코드로 나를 인도 :

trace(e.getStackTrace())() 

Hummm이 분명히 나는 ​​액션 스크립트 자바에서 리팩토링하는 데 사용되는 정규식에 의해 제작되었다. extra()를 제거하면 문제가 해결됩니다.

이것은 컴파일러가 catch 할 것이 아니라, 릴리스시에만 실패하게 만드는 것입니다. 문제가되는 코드가 포함 된 함수가 스택에 푸시 될 때입니다.

+0

흥미 롭다면, 나는 추적에서 반환 유형이 무효라고 생각했습니다. void()를 호출하는 것과는 다른 오류가 발생한다고 생각합니다. 쿨 캐치. –