VerifyError: Ошибка # 1014: класс не найден - PullRequest
8 голосов
/ 05 ноября 2011

Я разрабатываю проект AS3 с использованием Flash Builder 4.5 (также с библиотекой Away3D 4.0 и Flex 4.5.1 SDK).

Кроме того, я добавляю свою собственную библиотеку SWC, которую я ранее компилировал в свой проект. Это работает, если я импортирую класс в свою библиотеку SWC, но я хочу, чтобы мой SWF запускался в автономном флеш-плеере 11.

Я следую этому уроку: http://help.adobe.com/en_US/flashbuilder/using/WSe4e4b720da9dedb5-4dd43be212e8f90c222-7ffb.html

Теперь я мог запустить свое приложение во флеш-плеере 11, но во время выполнения я получил ошибку:

VerifyError: Ошибка # 1014: класс XXX не найден

И ХХХ - это мой класс в библиотеке SWC. Как мне это исправить?

Ответы [ 5 ]

10 голосов
/ 10 сентября 2012

Объединение с кодом означает это в свойствах проекта -> Путь сборки Flex -> Путь к библиотеке -> Framework Linkage .Фреймворк языковой имеет два варианта Объединение в код и RSL .Выберите Объединено в код .Это должно решить вашу проблему.

5 голосов
/ 29 октября 2013

У нас была эта проблема при попытке построить проект с использованием собственного расширения.

Классы в NE не были найдены во время выполнения, но были доступны в Flash Builder.

Оказалось, что по умолчанию файл .ANE не был скопирован на устройство.

Чтобы исправить это, измените следующее свойство проекта:

Упаковка сборки ActionScript -> Apple iOS -> Собственные расширения -> Проверьте «пакет» для ANE

Не знаю, почему он не был включен по умолчанию. Когда вы снимаете флажок «Пакет», вы получаете предупреждение о том, что это может вызвать проблемы во время выполнения!

3 голосов
/ 10 апреля 2013

В моем случае у нас была вложенная ссылка на ту же библиотеку, которую нужно было загрузить, прежде чем другая библиотека также будет использовать ее. Это исправление можно выполнить, сняв флажок «Автоматически определять порядок библиотек на основе зависимостей» и переместив библиотеку вверх в цепочке библиотек путей сборки. Flash Builder не смог определить правильную базу заказа по зависимостям, потому что у нас было 2 разных версии одной и той же библиотеки. Ошибка может произойти только во время выполнения.

1 голос
/ 29 октября 2014

Поскольку я попал на эту страницу в поисках этого сообщения об ошибке, и ни одно из перечисленных выше решений не помогло мне, вот как мне наконец удалось обойти это:

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

Что сработало для меня, так это включение фиктивных объектов в ваше основное приложение, которые являются экземплярами класса, на который жалуется ошибка проверки:

import some.classpath.to.TheClassThatFailsOnVerify;
function YourMainApp(){ 
    var dummy:TheClassThatFailsOnVerify = new TheClassThatFailsOnVerify (); 
}

По крайней мере, в моем случае ошибки возникали только для классов, которые не использовались непосредственно в приложении, а только внутренне в коде библиотеки swc, поэтому, имея фиктивные объекты в основном приложении, я заставляю Flash Builder включать эти классы в сборник.

В некоторых случаях вам, возможно, придется сначала найти swc, содержащий рассматриваемый класс, так как он не является частью библиотеки swc, которую вы используете, но опять же это библиотека, которую swc использует сам.

1 голос
/ 18 октября 2013

У меня была эта проблема после установки AIR 3.9 и попытки обновить проект.

Также было сказано, что произошла ошибка RSL, прежде чем выдать последовательность ошибок # 1014.

Это сработало после того, как я установил тип ссылки textLayout.swc в расширенных настройках ActionScript как «объединенный с кодом» вместо стандартного (RSL)

Надеюсь, это поможет!

...