2013-05-13 3 views
2

Надеюсь, что-то там может помочь.Flash Builder 4.7 Проблемы с сборкой Ant

У меня есть большой проект, который использует Ant для релизов, который должен быть «Run in the same JRE as workspace». Это всегда было хорошо в fb4.5 и 4.6, но в 4.7 fb.exportReleaseBuild дает нам java .lang.NullPointerException.

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

я могу воспроизвести проблему в 4.7 на два ПК, выполнив следующие действия:

Создать новый гибкий проект под названием «buildTest», Добавить папку сборки, Создайте новый файл с именем build.xml (в папка сборки) Вставьте следующий файл сборки:

<?xml version="1.0" encoding="utf-8"?> 
<project default="default" basedir="../"> 
       <!-- target: default --> 
       <target name="default"> 
           <fb.exportReleaseBuild project="BuildTest"/> 
       </target> 
</project> 

правой кнопкой мыши на файле сборки, Run As -> Ant сборки ... -> JRE (вкладка) -> выберите «Выполнить в то же JRE, что и рабочее пространство »-> Нажмите« Запустить »

Если вы сделаете это в 4.6 (в любом из моих боксов), он отлично работает. если вы сделаете это в 4.7 (снова в любом случае), вы получите следующую ошибку:

BUILD FAILED C: \ Users \ germanD1 \ Documents \ Projects \ test Projects \ Ant Test \ BuildTest \ build \ build.xml: 6: java.lang.NullPointerException

Вы даже можете создать его и посмотреть, как он сбой в 4.7, затем откройте тот же прог в 4.6 и наблюдайте за его работой !!!

Я надеюсь, что кто-то может помочь, это сводит меня с ума.

Большое спасибо Dan

+0

'' но поскольку вы не можете получить 4.6 больше, это не долгосрочное решение. ''> FlashBuilder как продукт не является долгосрочным решением. Я рекомендую вам перейти на IDE, разработанную компанией, которая вас уважает. Раньше, а не позже Adobe собирается отказаться от FlashBuilder или, по крайней мере, поддерживать Flex. Очевидно, что они уже сократили бюджет при регрессионном тестировании: ваша ошибка с регрессией, к сожалению, не единственная :( – RIAstar

+0

У меня это хуже, у меня даже не было 4.6 или 4.5 ... –

ответ

0

Я знаю, что ваш пост некоторое время назад, но вчера тот же вопрос ударил меня - так для кого-то перед этим я записать свой опыт. Я не смог скомпилировать с ant в FB 4.7, получив java.lang.NullPointerException. Я думаю, что комментарий RIAstars верен, но поскольку технология - это конец жизни, и вы по-прежнему находитесь в Flex/Flash по какой-либо причине, вам все равно нужна работа; здесь я вижу три возможности:

  • Install FB 4,6 и FB 4,7 бок о бок на вашей машине и сделать ваши муравей задачи в FB 4.6, в то время как вы разрабатываете на FB 4.7
  • Try, чтобы ваш билд. xml запускает внутри Ant из командной строки (в Windows: загружает муравей, устанавливает переменную окружения ANT_HOME и Path (append) на путь установки ant, и передает sdks \ 4.11.0 \ ant \ lib \ flexTasks.jar в папка lib муравья, перейдите с командной строкой в ​​папку build.xml, введите ant и нажмите enter).
  • Попробуйте другой IDE, есть некоторые вокруг (например, проверить Fast alternative to Flash Builder)

В моем случае мне не удалось с fb.exportReleaseBuild, чтобы заставить ее работать на моей модульной структуре проекта. Я создал скрипт ant, сначала сделав a -dump-config (параметр компилятора) из моих проектов и создав скрипт ant из sourcemate (примерно 50% работы для вас и хорошее введение в синтаксис ant, но работает только с FB 4.6 lol). На этой базе я создал файл сборки ant и исправил ошибки шаг за шагом с исследованиями и попытками и ошибкой (первый раз я использую ant). Я использую ant с линией cmd для создания моих релизов.

Ну, все очень раздражает и занимает много времени - создание релиза происходит так, но, по крайней мере, оно работает и автоматизировано.

3

К сожалению, будет невозможно устранить исключение NullPointerException при использовании задачи fb.exportReleaseBuild ant в FlashBuilder 4.7.

Я также недавно столкнулся с этой проблемой и решил взломать реализацию fb.exportReleaseBuild, которая в конечном итоге вызывает непосредственно код ExportReleaseVersionManager.java, который выполняет функцию «Export Release Build», предоставляемую плагином FlashBuilder Eclipse, в.

Если вы просмотрите журналы Erorr или включить достаточно муравей выход, то NullPointerException Доложенных:

com.adobe.flexbuilder.exportimport.releaseversion.ExportReleaseVersionManager.doBuild(ExportReleaseVersionManager.java:222)

Если вы декомпилировать файл в вопрос, вы будете искать причину ошибки:

220 if (PlatformUI.isWorkbenchRunning()) { 
    221  IWorkbench workbench = PlatformUI.getWorkbench(); 
    222  IEditorPart[] dirtyEditors = workbench.getActiveWorkbenchWindow().getActivePage().getDirtyEditors(); 
    223  assert (dirtyEditors.length == 0); 
    224 } 

Оказалось, что вызов workbench.getActiveWorkbenchWindow() всегда будет возвращать значение null, если метод вызывается из потока, отличного от UI, и когда вы запускаете сборку ant, то есть поток, отличный от UI.

Таким образом, очевидно, что это не было регрессионным испытанием, как было сказано ранее, и, вероятно, нет способа его исправления, если, конечно, не было исходного кода, что затем сделало бы его более простым для исправления.

благодарит Adobe!

+0

Это просто сумасшествие. –

Смежные вопросы