2011-07-20 3 views
7

Я портировал коду Flex 4 в iOS с помощью adobe packager, но столкнулся с проблемой при попытке упаковать всю нашу кодовую базу. Пакетик работает некоторое время, а затем выбрасывает OutOfMemoryError - даже если я увеличиваю размер кучи java до 4 ГБ.Adobe Flash iOS packager бросает java.lang.OutOfMemoryError при упаковке больших проектов

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

Я зарегистрировал очень подробный отчет об ошибке с помощью adobe здесь: http://bugs.adobe.com/jira/browse/FB-32192. Он включает в себя файл AIRI, который вы можете упаковать, чтобы воспроизвести проблему, ruby-скрипт, который генерирует код ActionScript для создания этого файла AIRI и сводку всех вещей, которые я пробовал, прежде чем регистрировать ошибку.

Кто-нибудь еще пытался скомпилировать большие проекты с iOS-упаковщиком? Существуют ли какие-либо известные способы обхода?

+0

Вы используете Flex 4.5.1? Если нет, я предлагаю обновить SDK и инструменты и посмотреть, есть ли у вас проблемы. Flex 4 (и связанная с ним версия AIR) не оптимизированы для развертывания iOS. – JeffryHouser

+0

Yup, все работает на flex 4.5.1 и использует AIR 2.7. – karl

+0

Вопрос сказал Flex 4, поэтому я хотел быть уверенным. К сожалению, я могу Я надеюсь, что кто-то еще может. +1 от меня – JeffryHouser

ответ

0

Вы ничего не можете поделать с этим, это известная проблема для adobe packager. Единственное, что я хотел бы сделать, это попытаться установить размер мини-кучи очень высоко или, возможно, что-то сумасшедшее, как запустить его с помощью jdb (даже если нет отладочных символов ...).

0

Попробуйте использовать Ant для управления процессом, описал here, а затем настроить параметры Java в муравья следующим образом:

fork="true" 
maxmemory="256m" 
1

пытаются использовать x64 Java автономной работы. Он решил аналогичную проблему для меня - проект успешно упакован с использованием только x64 Java-процессов, процесс x86 Java не смог выделить столько оперативной памяти, сколько необходимо для упаковки моего проекта даже с увеличением размеров кучи.