Eu estou tentando fazer algumas "coisas" antes de uma compilação do meu projeto Android.
A configuração é aproximadamente a seguinte:
- LibraryProject
- AppA
- AppB
Eu tenho executado configurações para AppA + AppB
Eu sei como, por exemplo use as pequenas marcas de verificação para, por exemplo
- Implantar ou não implantar
- Executar ou não executar
O que eu estou preso é Executar o destino Ant.
O que eu quero (o motivo para esta questão) é dizendo meu aplicativo atual em execução (na maioria das vezes é AppA quando eu pressiono "run", porque eu mudei alguma coisa no código para, por exemplo, persistir configurações.
Eu tenho controle total sobre o aplicativo e jáescreveu vários scripts para, e. falar via ADB para o dispositivo, ou até mesmo falar com o aplicativo em execução atual usando UDP e um aplicativo host C # na minha máquina de desenvolvimento. Então, se eu sou capaz de executar um e-mail shutdown.exe (.NET escrito por mim) Eu posso dizer ao meu aplicativo para desligar.
Então, para mantê-lo "fácil", tentei calc.exe para começar ao pressionar "executar" dentro de um projeto Android no Intellij. Mas eu consegui totalmente perdido na configuração build.xml IntelliJ usa para Android.
Eu tentei:
- adicionando uma tarefa exec ao build.xml
- diga a ele para executar alvos Ant
- Adicionando alguns testes
Todos eles não têm efeito. Eu posso ver o Ant Build no Intellij e iniciar a tarefa manualmente, ainda sem efeito (por isso não posso realmente saber se eles são iniciados pela configuração de execução, porque o pode falhar silenciosamente).
Eu adicionei:
<target name="-pre-build">
<exec executable="calc.exe"/>
<echo message="HelloWorld"/>
</target>
<target name="-pre-compile">
<exec executable="calc.exe"/>
<echo message="HelloWorld"/>
</target>
Alguma dica que estou fazendo de errado? Mais uma informação. Se eu pressionar o botão verde na barra de ferramentas Ant Build no nível mais alto, o Android me diz algo sobre "arquivo de compilação desatualizado", mas acho que está tudo bem. Parece que ele tenta rodar todo o arquivo Ant então, o que importa algumas tarefas android antes - mas isso não é o que eu quero de qualquer maneira.
Então alguém pode me dar um exemplo (para iniciar calc.exe). Eu vou descobrir o resto e atualizar o post, se necessário, para ajudar outras pessoas.
Chris
Respostas:
1 para resposta № 1O IDEA não usa qualquer construção Ant por padrão, o que você vê é provavelmente o build.xml gerado automaticamente para este projeto.
Você pode criar um novo arquivo build.xml com apenas o seguinte dentro:
<project name="build" default="pre-build">
<target name="pre-build">
<exec executable="c:/windows/system32/calc.exe"/>
<echo message="HelloWorld"/>
</target>
</project>
Na configuração do Android Run / Debug Antes do lançamento section especifica esse destino Ant a ser executado:
Eu o verifiquei com um pequeno projeto de amostra e calc.exe é executado corretamente antes de executar a configuração do Android no IntelliJ IDEA.
1 para resposta № 2
Eu me deparei com essa pergunta quando estava pesquisando a mesma pergunta no Google. Talvez seja muito tarde para postar minha resposta, mas melhor do que nada.
Descobri que você não precisa de um script de construção ant, que é apenas usar o sistema padrão IntelliJ é muito bem. Por exemplo, eu estou fazendo meu projeto com android-ndk, então eu quero intelliJ run ndk-build NDK_DEBUG=1 -j4
antes da compilação normal.
Aqui está a solução:
- Executar -> Configuração do Editor
- Selecione uma das suas configurações de configuração no lado esquerdo da caixa de diálogo.
- No lado direito há uma área marcada como Antes do lançamento
- Clique no botão "mais", escolha
Run External Tool
no menu pop-up. - Clique no botão "mais" na nova janela pop-up
- Então você entra na janela de configuração real.
É triste que eu não posso postar imagem agora. Você deve querer ver, em seguida, no meu blog