Maven FlexMojos создает пустое приложение Air. Конечный продукт не имеет окна. Создает SWF, но не открывает его
проблема
Когда я запускаю свое воздушное приложение (скомпилированное с помощью flexmojos), оно кажется "пустым"- окна вообще нет. Он отлично работает при компиляции из Flash Builder.
Фон
Я компилирую приложение Adobe Air с помощью плагина Flexmojos Maven для Mac OS X: Lion. Он успешно создает файл SWF и файл AIR.
Когда я дважды щелкаю SWF-файл, он открывается очень хорошо
(и вылетает с ошибкой, которую вы ожидаете - поскольку она не работает в среде AIR)Когда я дважды щелкаю файл AIR, окно не открывается!
(Я вижу свое приложение в строке меню Mac, но нет окна приложения и ошибок)
Когда я смотрю под /Applications/MyApplication.app/Contents/Resources
Я вижу следующие файлы:
META-INF MyAppMainAir.swf
MyAppMainAir.css mimetype
Файл SWF имеет правильный размер и открывается, как и ожидалось.
Фрагмент ПОМ
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>${flexmojos.version}</version>
<configuration>
<flexBuilderCompatibility>true</flexBuilderCompatibility>
<sourceFile>${application.name}.mxml</sourceFile>
<finalName>${application.name}</finalName>
<descriptorTemplate>${project.build.sourceDirectory}/${application.name}-app.xml</descriptorTemplate>
<storepass>${keystore.password}</storepass>
<includeStylesheets>
<stlyesheet>
<name>${application.name}.css</name>
<path>${application.name}.css</path>
</stlyesheet>
</includeStylesheets>
<licenses>
<flexbuilder3>${flex.license}</flexbuilder3>
</licenses>
<targetPlayer>10.2.0</targetPlayer>
</configuration>
<executions>
<execution>
<goals>
<goal>sign-air</goal>
</goals>
</execution>
</executions>
</plugin>
Вопрос
Почему мой SWF-файл создается правильно, а мое приложение AIR не открывает окно? Когда я собираю / запускаю приложение из Flash Builder, оно отлично работает.
Любой вклад / совет приветствуется!
1 ответ
Решение
После изучения этого в группе Google FlexMojos, оказалось, мне нужно было установить следующую опцию:
<swfVersion>11</swfVersion>
По какой-то причине это было по умолчанию 10, что вызвало проблему. Добавьте эту строку, все работает отлично!
Альтернативное исправление
Кроме того, я также смог решить проблему, загрузив файл air-config.xml:
<loadConfig>${flex.sdk}/frameworks/air-config.xml</loadConfig>
Этот файл также можно найти в хранилище:
${path_to_m2_repo}/com/adobe/flex/framework/framework/${flex.sdk.version}/configs_zip/air-config.xml
где flex.sdk.version=4.5.1.21328
, например.
Другая проблема невидимого окна
Также, чтобы появилось начальное окно, вам может потребоваться настроить значения дескриптора, установив visible=true:
<initialWindow>
<content>Main.swf</content>
<autoOrients>false</autoOrients>
<fullScreen>false</fullScreen>
<visible>true</visible>
</initialWindow>
Ошибка, которая у меня возникла, в сочетании с этим значением false привела к тому, что окно вообще не появилось, что сбивало с толку. После установки visible=true, окно, по крайней мере, появилось, но все содержимое искры отсутствовало. Как только ошибка была исправлена, я мог установить видимое обратно в ложь.