Flex Compilier сообщает, что путь к источнику и определение пакета не совпадают - PullRequest
5 голосов
/ 07 октября 2010

Вот проблема:

У меня есть три файла в одном пакете: com.foobar

Каталог для этих файлов:

C: .. \ mylibrary\ src \ com \ foobar \

тогда внутри у меня есть foo.as и bar.as

Когда я пытаюсь запустить mxmlc C: .. \ mylibrary \ src \ com \ foobar \ foo.as я получаю сообщение об ошибке:

Файл, найденный в исходном пути, должен иметь ту же структуру пакета '', что и пакет определения 'com.foobar'.

Для этого яговорят: так и есть.Пакет com.foobar.Структура идет ../com/foobar/foo.as

Я нашел несколько других сообщений на форуме об этой ошибке, и мне показалось, что пользователь должен был сделать каталог, соответствующий имени пакета, который у меня уже есть.Чего мне не хватает?

Заранее благодарим за любую помощь, которую вы можете оказать!

Ответы [ 6 ]

9 голосов
/ 08 октября 2010

Сотрудник довольно долго помогал мне в этом.Оказывается, мне пришлось использовать следующую команду:

(в каталоге x, в котором содержится \src\com\foobar\foo.as)

mxmlc -compiler.source-path=.\src -static-link-runtime-shared-libraries=true .\src\com\foobar\foo.as -output .\test.swf

По какой-то причине, команда -source-path, которую я пытался, неудовлетворительно.

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

1 голос
/ 01 декабря 2011

Я не могу потрудиться разобраться, если это является причиной вашей проблемы, но я обнаружил, что я получил эту ошибку, когда file.mxml ссылался на файл .as для класса, а файл.m.mml был неправильным каталог по отношению к именам его классов в файле .mxml.

так общий пример, если файл .mxml ссылается на

  • import MyPackage.Util.MyClass;

тогда файл .as, содержащий класс, должен находиться в относительной позиции

  • \ МЕТОДИЧЕСКИЕ \ MyFile.mxml

  • \ МЕТОДИЧЕСКИЕ \ MyPackage \ Util \ MyClass.as

вы, например, затем вызываете компилятор, .. \ bin \ mxmlc MyFile.mxml

Я подозреваю, что если вы попытаетесь использовать директивы source-path в приведенном выше сценарии, он пожалуется, что подкаталоги уже включены в любом случае.

0 голосов
/ 14 мая 2015

проверьте все теги в вашем файле .actionScriptProperties.Если вы скопировали и переместили папку, это место, где она должна быть проверена.В моем случае я изменил С:

0 голосов
/ 22 февраля 2013

Flash Builder быстрый совет.

Если вы изменили свои пакеты air / flex или другие фоновые пакеты или даже добавили новый sdk и вам пришлось перестроить файл, чтобы он заработал, то вам, возможно, пришлось пересобрать или использовать Flash Builder. обновить свои атласы файлов.

Наиболее распространенная проблема, если ваша папка src или пакет по умолчанию полны ошибок, заключается в том, что Flash Builder только что переместил их ссылки.

Если вы щелкнете правой кнопкой мыши по файлу пакета по умолчанию (.as или mxml и т. Д.) И выберете «Установить как приложение по умолчанию», это может решить вашу проблему. Если это не сработает, вам нужно перейти на:

Project > Properties > ActionScript Build Path 

Внизу у него будет поле «Основная папка источника». Если это пустое значение, просто введите 'src' или любое другое имя, которое вы называете вашей исходной папкой, содержащей все ваши файлы пакета (.as или что-то еще).

Если ваш пакет / файл по умолчанию все еще показывает ошибки (то есть файл, найденный в исходном пути, должен иметь ту же структуру пакета 'src', что и пакет определения)

перейти к Project > Properties > ActionScript Compiler

и посмотрите, какую версию Flex SDK вы используете. Если выбрана кнопка «по умолчанию», попробуйте выбрать «Использовать определенный SDK» и посмотрите, что в нем указано. Обычно это будет только один список, и он будет читать что-то вроде Flex 4.6.0 или что-то подобное. Запишите это имя и поищите на жестком диске файл flex-sdk-description.xml. Это обычно будет в вашем:

Adobe > Adobe Flash Builder 4.6(or your current version) > sdks > Flex 4.6.0 (то же имя, что и во Flash Builder).

Откройте этот файл, и вы увидите flex-sdk-description.xml Щелкните правой кнопкой мыши или выделите его и выберите, чтобы открыть его с помощью блокнота (Windows). У него будет длинная линия дескрипторов. найти <name>Something written here</name> он должен иметь то же имя, что и ваш выбор Flash SDK Flash Builder (который мы только что обнаружили секунду назад). Иногда вам придется изменить это <name>, чтобы использовать определенный SDK или расширение в Flash Builder. Здесь я не могу вам помочь, и вам нужно убедиться, что <name> - это Flex 4.6.0 или какая-либо версия Flex, которую вы используете. Если это Flex 4.6.0 (Air3.6) или есть что-то еще, вам может потребоваться связаться с Adobe или создателем SDK / Extension, чтобы узнать, что вы можете сделать.

Наконец, проверьте раздел вывода в Project> Properties> ActionScript Build Path. по умолчанию выводим bin-debug. Если вы не изменили это заранее, по умолчанию это будет: bin-debug

Удачи!

0 голосов
/ 03 июня 2011

Помимо правильной структуры папок, вам также необходимо сопоставить имя файла и название класса дословно.Это означает, что foo.as должен быть Foo.as, если ваше имя класса действительно Foo.

0 голосов
/ 07 октября 2010

Вы упомянули 3 разных пакета: com.foo, com.foobar и com.plupload, и, похоже, у вас есть один путь к каталогу для всех 3: \ com \ foobar. Если эти классы находятся в каталоге \ com \ foobar \, то все они должны объявить пакет как com.foobar. Имя пакета и путь к каталогу должны совпадать, иначе вы получите ошибку несоответствия, которую вы описали. Итог: имена пакетов и пути к каталогам фактически являются синонимами.

...