Не удается скомпилировать приложение royale с помощью Crux: не удалось найти файл для класса: mx.rpc.AsyncToken

Я создаю приложение типа hello world, используя Royale 0.9.6 и Crux. Это мой первый раз, когда я пробовал Crux, и я использовал примеры, предоставленные в Royale sdk, чтобы двигаться вперед. К сожалению, после того, как все настроено, компиляция завершается с ошибкой:

java.lang.RuntimeException: Unable to find JavaScript filePath for class: mx.rpc.AsyncToken org.apache.royale.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:643)org.apache.royale.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:672)org.apache.royale.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:672)org.apache.royale.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:672)org.apache.royale.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:672)org.apache.royale.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:325)org.apache.royale.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:113)org.apache.royale.compiler.internal.codegen.mxml.royale.MXMLRoyalePublisher.publish(MXMLRoyalePublisher.java:446)org.apache.royale.compiler.clients.MXMLJSCRoyale.compile(MXMLJSCRoyale.java:441)org.apache.royale.compiler.clients.MXMLJSCRoyale._mainNoExit(MXMLJSCRoyale.java:265)org.apache.royale.compiler.clients.MXMLJSCRoyale.mainNoExit(MXMLJSCRoyale.java:222)org.apache.royale.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:369)org.apache.royale.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:304)org.apache.royale.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:262)org.apache.royale.compiler.clients.MXMLJSC.main(MXMLJSC.java:244)

Затем есть несколько строк с ошибкой, говорящих о том, что несколько классов «mx.rpc», от которых зависит Crux, не могут быть найдены.

Мне интересно, пропустил ли я импорт или что-то еще, но я не могу понять это.

Спасибо,


РЕДАКТИРОВАТЬ: Вот несколько простых шагов для воспроизведения:

  • Открытый самогон
  • Файл > Создать > Браузерный проект Royale
  • Введите любое имя проекта и создайте проект
  • Компиляция (CTRL + J): компиляция прошла успешно
  • Откройте основной файл mxml src/[appname].mxml.
  • Добавьте xmlns:crux="library://ns.apache.org/royale/crux" к открывающему тегу <js:Application>.
  • Добавьте следующее: <j:beads> <crux:Crux> </crux:Crux> </j:beads>
  • Компилировать (CTRL + J): компиляция завершается ошибкой, как описано выше.

Минимальная реализация Crux


person Migs    schedule 18.11.2019    source источник


Ответы (2)


Я только что просмотрел файлы проекта Moonshine IDE в примерах, доступных в Репозиторий Рояль. Они были сломаны — я исправил их, так что вы можете подождать Создавайте каждую ночь и загружайте новый SDK вместе с примерами или просто используйте исходный код для оформления заказа.

Когда вы открываете любой из этих примеров, щелкните правой кнопкой мыши в Moonshine, выбрав «Настройки», и вы должны проверить «Параметры сборки» — будет много дополнительных параметров компилятора, но в вашем случае, вероятно, будет достаточно, если вы введете «Дополнительные параметры компилятора» +configname=flex

person Piotr Zarzycki    schedule 27.11.2019
comment
Спасибо, Петр, +configname=flex добился цели даже с моим текущим SDK, но я все равно скачал ночную сборку, чтобы получить также исправленные примеры. Спасибо! - person Migs; 28.11.2019

Судя по снимку экрана, вы используете <j:beads>, но не объявили пространство имен <j:>. Попробуйте вместо этого использовать <js:beads>.

person yishayw    schedule 25.11.2019
comment
Хорошо подмечено! К сожалению, установка <js:beads> ничего не изменила. Та же ошибка :( Я также пытался добавить пространство имен j xmlns:j="library://ns.apache.org/royale/jewel", но это ничего не меняет... - person Migs; 25.11.2019