Приложение для iPad, разработанное с помощью Flash Builder, зависает после загрузки внешних данных

Я разрабатываю приложение для iPad в Flash Builder 4.6. Мое приложение перестает работать на устройстве, когда я загружаю данные из шлюза amfphp. В ответе сервера содержится около 30 объектов-значений. Когда сервер отвечает с меньшим количеством данных - приложение работает нормально.

Итак, я предполагаю, что проблема в разборе ответа AMF. Эта политика связана с iPad? Могу ли я добавить модификаторы при упаковке, чтобы избежать этой проблемы?

Стэн


person Stan Reshetnyk    schedule 25.01.2012    source источник
comment
Зависает ли он на вашей платформе разработки? Windows или Mac, когда будете тестировать?   -  person ShaunOReilly    schedule 27.01.2012
comment
Он отлично работает в dev env на моей Windows 7. Проблема на устройстве iPad1. Я также смог загрузить и проанализировать 200 КБ xml на устройстве. Но описанная проблема, вероятно, связана с сопоставлением классов AMF, RemoteObject, amf.   -  person Stan Reshetnyk    schedule 27.01.2012
comment
Если он работает с меньшим количеством объектов, возможно, здесь проблема с памятью. Вы проверяли профилировщик на наличие утечек памяти и общего потребления памяти?   -  person AlBirdie    schedule 22.02.2012
comment
Насколько я знаю, проблема не в AMF. На самом деле существует библиотека для AMF на iPad под названием Cocoa-amf github.com/nesium/cocoa-amf< /а>   -  person keyle    schedule 23.02.2012
comment
Спасибо, что посмотрели. Я отключил половину проекта и смог двигаться вперед.   -  person Stan Reshetnyk    schedule 23.02.2012


Ответы (1)


Проблема уже ушла/решена. АМФ работает нормально.

  1. Идентификатор приложения должен начинаться с правильной строки, указанной в профиле предоставления!

  2. Отключить режим отладки. Как в mxmlc, так и в обеспечении get-task-allow.

Я думаю, что следующее также влияет:

  1. Не должно быть классов market[RemoteClass] и с аргументами в конструкторе (даже со значениями по умолчанию).

  2. У меня был код, в котором NetConnection.connect вызывался очень часто. Увеличенный интервал.

person Stan Reshetnyk    schedule 23.02.2012
comment
Та же проблема здесь, не могли бы вы подробнее рассказать о своем ответе? Должен ли я явно добавлять элементы application-identifier и get-task-allow в качестве прав в дескриптор приложения air? - person Cosma Colanicchia; 22.11.2012
comment
Я не помню, что я имел дело с id. Но я четко помню еще 2 проблемы: 1) объекты значений, прошедшие десериализацию, должны иметь пустой конструктор. БЕЗ каких-либо четных аргументов по умолчанию; 2) иногда зависает при доступе к SharedObjects, а иногда нет (в зависимости от реквизита). Но довольно стабильное поведение. - person Stan Reshetnyk; 22.11.2012
comment
Спасибо за ответ. Я борюсь с приложением, которое отлично работает в Android (отладка или пакет) и в режимах отладки/запуска/быстрого/стандартного iOS из Flash Builder, но зависает при втором или третьем вызове удаленной службы. когда ad-hoc упакован.. на стороне сервера запросы правильно управляются, но IPP зависает, когда он получает данные, прежде чем отправить какой-либо результат или событие ошибки.. - person Cosma Colanicchia; 22.11.2012
comment
В ПОРЯДКЕ. Похоже на вопрос 1) в моем комментарии. Попробуйте удалить аргументы из конструктора объектов. - person Stan Reshetnyk; 22.11.2012
comment
Нашел проблему. Обратите внимание, что аргументы конструктора допустимы, если указано значение по умолчанию (проверено). В моем случае проблема была связана с ошибкой в ​​методе установки десериализованного объекта, который вызывал ошибку переполнения стека (например, метод установки вызывает сам себя вместо своей переменной хранения). Эмулятор и приложение Android во время выполнения просто сдаться без зависаний (в отладке он будет регистрировать ошибку в консоли), в то время как на iOS все приложение перестает отвечать (нет проверки ограничения стека вызовов в перекодированном приложении?). В любом случае, спасибо! - person Cosma Colanicchia; 23.11.2012