2009-09-18 5 views
2

Я использую лицензионную версию Flex Builder Pro для разработки приложения.Ошибка выполнения при компиляции приложения flex с ANT

Я скомпилировал swc и сгенерировал swf с помощью задач ANT. Он также содержит расширенную сетку данных. Когда это приложение получает доступ, я получаю ошибку времени выполнения и не загружается.

TypeError: Error #1007: Instantiation attempted on a non-constructor. at mx.controls::AdvancedDataGridBaseEx/getSeparator() at mx.controls::AdvancedDataGridBaseEx/createHeaderSeparators() at mx.controls::AdvancedDataGrid/createHeaderSeparators() at mx.controls::AdvancedDataGridBaseEx/drawSeparators() at mx.controls::AdvancedDataGridBaseEx/updateDisplayList() at mx.controls::AdvancedDataGrid/updateDisplayList() at mx.controls.listClasses::AdvancedListBase/validateDisplayList() at mx.managers::LayoutManager/validateDisplayList() at mx.managers::LayoutManager/doPhasedInstantiation() at Function/ http://adobe.com/AS3/2006/builtin::apply() at mx.core::UIComponent/callLaterDispatcher2() at mx.core::UIComponent/callLaterDispatcher()

Я добавляю datavisualization.swc и datavisualization_rb.swc в пути сборки.

Как я могу скомпилировать приложение без каких-либо ошибок времени выполнения?

Пожалуйста, помогите.

ответ

0

Включите swcs в путь библиотеки, как показано на рисунке here.

+0

У меня нет проблем с добавлением swc в пути к библиотеке. Это работает отлично, и окончательный swf также генерируется. Но когда swf запущен в браузере, он дает ошибку времени выполнения, когда загружается вкладка, содержащая расширенную сетку данных. – jobinbasani

+0

Я спросил, потому что я заметил разницу, когда случайно использовал путь «Внешняя библиотека» и «Путь к библиотеке», и задался вопросом, можете ли вы сделать то же самое. – Brandon

0

По совпадению я имел ту же ошибку, пару дней назад. Источником этой проблемы была библиотека против я построила, которая была статически связана с более старой версией библиотек datavisualization. Обычно библиотеки должны компилироваться только для других библиотек, используя параметр компилятора внешней библиотеки, но эта библиотека была скомпилирована неправильно.

Для того чтобы библиотека содержала старые части данных, которые ссылались на код в библиотеке, в то время как мой код ссылался на более новые части из самой библиотеки datavisualization. Результатом стало сочетание старых и новых классов данных в среде выполнения.

Итак, проверьте SWC, которые вы включили в свой путь к библиотеке. Вы можете извлечь их с помощью инструмента ZIP. Затем вы найдете файл catalog.xml. Найдите mx/controls/AdvancedDataGrid в этом файле. Если вы видите, что он включен в каталог, вы нашли фальшивую библиотеку.