Запустите, например, calc.exe перед сборкой IntelliJ с проектами Android - PullRequest
0 голосов
/ 05 декабря 2011

Я пытаюсь сделать некоторые "вещи" перед сборкой моего проекта Android.
Установка примерно такая:

  • LibraryProject
  • AppA
  • AppB

Я запустил конфигурации для AppA + AppB
Я знаю, как, например, использовать маленькие галочки, например,

  • Развернуть или не развернуть
  • Запускать или не запускать

Я застрял на одном из них Запуск цели Ant .

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

У меня есть полный контроль над приложением, и я уже написал несколько сценариев, например, для разговора через устройство ADB или даже для разговора стекущее работающее приложение, использующее UDP и хост-приложение C # на моей машине разработки. Поэтому, если я могу запустить, например, shutdown.exe (.NET, написанный мной), я могу сказать моему приложению о завершении работы.

Так что для простоты я пытался заставить calc.exe запускаться при нажатии «run» внутри проекта Android в Intellij. Но мне удалось получить полностью потерянным вКонфигурация build.xml, которую IntelliJ использует для Android .

Я пытался:

  • добавить задачу exec в build.xml
  • и попросить его запуститьМуравьиные цели
  • Добавление некоторых тестов

Все они не имеют ЭФfect.Я могу просмотреть Ant Build в Intellij и запустить задачу вручную, но все равно ничего не произойдет (поэтому я не могу точно знать, запускаются ли они из-за конфигурации запуска, потому что они могут молча работать).

Я добавил:

<target name="-pre-build">
    <exec executable="calc.exe"/>
    <echo message="HelloWorld"/>
</target>
<target name="-pre-compile">
       <exec executable="calc.exe"/>
        <echo message="HelloWorld"/>
</target>

Какие-нибудь советы, что я делаю не так?О, еще одна информация.Если я нажму зеленую кнопку на панели инструментов Ant Build на самом высоком уровне, Android скажет мне что-нибудь об «устаревшем файле сборки», но я думаю, что это нормально.Похоже, он пытается запустить весь файл Ant, который импортирует некоторые задачи для Android раньше - но это не то, чего я хочу в любом случае.

Так что кто-нибудь может предоставить мне пример (для запуска calc.exe).Я разберусь с остальным и обновлю пост, если это необходимо для других, чтобы помочь.

Крис

Ответы [ 2 ]

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

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

Я обнаружил, что вам не нужен скрипт сборки ant, то есть просто использовать систему IntelliJ по умолчанию. Например, я делаю свой проект с android-ndk, поэтому я хочу, чтобы intelliJ запустил ndk-build NDK_DEBUG=1 -j4 перед обычной сборкой.

Вот решение:

  1. Выполнить -> Редактор конфигурации
  2. Выберите одну из конфигураций вашей сборки в левой части диалога.
  3. С правой стороны есть область, помеченная как Перед запуском
  4. Нажмите кнопку «плюс», выберите Run External Tool во всплывающем меню.
  5. Нажмите кнопку «плюс» в новом всплывающем окне
  6. Затем вы попадаете в окно реальной конфигурации.

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

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

IDEA по умолчанию не использует сборку Ant, вероятно, вы видите автоматически сгенерированный build.xml для этого проекта.

Вы можете создать новый файл build.xml, содержащий только следующее:

<project name="build" default="pre-build">
  <target name="pre-build">
    <exec executable="c:/windows/system32/calc.exe"/>
    <echo message="HelloWorld"/>
  </target>
</project>

В конфигурации Android Run / Debug Перед запуском раздел укажите эту цель Ant для запуска:

run ant before launch

Я проверил это с помощью небольшого примера проекта, и calc.exe будет правильно выполнен перед тем, как я запущу конфигурацию Android в IntelliJ IDEA.

...