我想在构建Android项目之前做一些“东西” 设置大致如下:
我已经为AppA + AppB运行了配置 我知道怎么做使用小的勾选标记,例如
我坚持使用的是运行Ant目标。
我想要的是( 这个问题的原因)告诉我当前正在运行的应用程序(大多数情况下,当我按“run”时它是AppA,因为我改变了代码中的内容,例如持久设置。
我完全控制了应用程序,并且已经编写了几个脚本,例如通过ADB与设备通信,甚至在我的开发机器上使用UDP和C#主机应用程序与当前运行的应用程序通信。所以如果我能够运行例如 shutdown.exe (由我编写的.NET)我可以告诉我的应用程序关闭。
为了保持“简单”,我试图在Intellij中的Android项目中按“运行”时启动 calc.exe 。但我设法在IntelliJ用于Android 的build.xml配置中完全丢失了。
我试过了:
他们都没有效果。我可以在Intellij中查看Ant Build并手动启动任务,但仍然没有效果(所以我真的不知道它们是否是由运行配置启动的,因为它可能会无声地失败)。
我补充说:
<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)。如果其他人需要帮助的话,我会把剩下的部分计算出来并更新帖子。
克里斯
答案 0 :(得分:1)
默认情况下,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运行/调试配置启动前部分指定要运行此Ant目标:
我在一个小型示例项目中验证了它,并且在IntelliJ IDEA中运行Android配置之前, calc.exe 已正确执行。
答案 1 :(得分:1)
当我在Google中搜索相同的问题时,我遇到了这个问题。也许发布我的答案已经很晚了,但总比没有好。
我发现你不需要一个ant构建脚本,就是使用IntelliJ默认系统就好了。例如,我正在使用android-ndk进行我的项目,所以我希望在正常构建之前运行ndk-build NDK_DEBUG=1 -j4
。
以下是解决方案:
Run External Tool
。可悲的是,我现在无法发布图像。您必须要查看我的blog