/ / Uruchom np. calc.exe przed kompilacją w IntelliJ z projektami na Androida - android, kompilacja, intellij-idea

Uruchom np. calc.exe przed kompilacją w IntelliJ z Androidem - android, build, intellij-idea

Próbuję zrobić kilka „rzeczy” przed kompilacją mojego projektu na Androida.
Konfiguracja jest z grubsza następująca:

  • LibraryProject
  • AppA
  • AppB

Uruchomiłem konfiguracje dla AppA + AppB
Wiem jak np. użyj małych znaczników wyboru, aby np.

  • Wdróż lub nie wdrażaj
  • Uruchom lub nie uruchom

Ten, z którym utknąłem to Uruchom cel Ant.

Czego chcę (powód na to pytanie) jest mówiąc o mojej bieżącej aplikacji (przez większość czasu jest to AppA, gdy naciskam „uruchom”, ponieważ zmieniłem coś w kodzie, np. zachowaj ustawienia.

Już teraz mam pełną kontrolę nad aplikacjąnapisał kilka skryptów np. rozmawiać przez ADB z urządzeniem lub nawet z bieżącą uruchomioną aplikacją za pomocą UDP i aplikacji hosta C # na moim komputerze programistycznym. Więc jeśli mogę uruchomić np. shutdown.exe (.NET napisane przeze mnie). Mogę nakazać mojej aplikacji do zamknięcia.

Żeby było to „łatwe”, próbowałem to zdobyć calc.exe rozpocząć po naciśnięciu przycisku „Uruchom” w projekcie Android w Intellij. Ale udało mi się zdobyć całkowicie zagubiony w konfiguracji build.xml, której IntelliJ używa na Androida.

Próbowałem:

  • dodanie zadania exec do pliku build.xml
  • każ mu uruchomić cele Ant Ant
  • Dodanie niektórych testów

Wszystkie nie działają. Mogę wyświetlić Ant Build w Intellij i uruchomić zadanie ręcznie, wciąż bez efektu (więc nie mogę naprawdę wiedzieć, czy są uruchamiane przez konfigurację uruchamiania, ponieważ mogą one zawieść cicho).

Dodałem:

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

Wszelkie wskazówki, co robię źle? Och, jeszcze jedna informacja. Jeśli nacisnę zielony przycisk na pasku narzędzi Ant Build na najwyższym poziomie, Android powie mi coś o „nieaktualnym pliku kompilacji”, ale myślę, że to jest w porządku. Wygląda na to, że próbuje wtedy uruchomić cały plik Ant, który wcześniej importuje niektóre zadania Androida - ale i tak nie tego chcę.

Więc każdy może podać mi przykład (na początek calc.exe). Rozpracuję resztę i zaktualizuję post, jeśli będzie to konieczne, aby inni mogli mu pomóc.

Chris

Odpowiedzi:

1 dla odpowiedzi № 1

IDEA domyślnie nie korzysta z żadnej kompilacji Ant, to, co widzisz, to prawdopodobnie automatycznie wygenerowany build.xml dla tego projektu.

Możesz utworzyć nowy plik build.xml zawierający tylko następujące elementy:

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

W konfiguracji Android Run / Debug Przed uruchomieniem sekcja określa ten cel Ant, który ma zostać uruchomiony:

uruchom mrówkę przed uruchomieniem

Sprawdziłem to za pomocą małego przykładowego projektu i calc.exe zostanie poprawnie wykonany, zanim uruchomię konfigurację Androida w IntelliJ IDEA.


1 dla odpowiedzi nr 2

Natknąłem się na to pytanie, kiedy szukałem tego samego pytania w Google. Może opublikowanie mojej odpowiedzi jest dość późne, ale lepsze niż żadne.

Odkryłem, że nie potrzebujesz skryptu budowania mrówek, wystarczy użyć domyślnego systemu IntelliJ. Na przykład robię swój projekt z Androidem-ndk, więc chcę uruchomić intelliJ ndk-build NDK_DEBUG=1 -j4 przed normalną kompilacją.

Oto rozwiązanie:

  1. Uruchom -> Konfiguracja edytora
  2. Wybierz konfigurację kompilacji po lewej stronie okna dialogowego.
  3. Po prawej stronie znajduje się obszar oznaczony jako Przed uruchomieniem
  4. Kliknij przycisk „plus”, wybierz Run External Tool w menu podręcznym.
  5. Kliknij przycisk „plus” w nowym oknie podręcznym
  6. Następnie przejdziesz do prawdziwego okna konfiguracji.

Smutne jest to, że nie mogę teraz opublikować obrazu. Musisz to wtedy zobaczyć na moim blog