例如运行使用Android项目在IntelliJ中构建之前的calc.exe

时间:2011-12-05 03:28:43

标签: android build intellij-idea

我想在构建Android项目之前做一些“东西” 设置大致如下:

  • LibraryProject
  • APPA
  • APPB

我已经为AppA + AppB运行了配置 我知道怎么做使用小的勾选标记,例如

  • 部署或不部署
  • 运行或不运行

我坚持使用的是运行Ant目标

我想要的是( 这个问题的原因)告诉我当前正在运行的应用程序(大多数情况下,当我按“run”时它是AppA,因为我改变了代码中的内容,例如持久设置

我完全控制了应用程序,并且已经编写了几个脚本,例如通过ADB与设备通信,甚至在我的开发机器上使用UDP和C#主机应用程序与当前运行的应用程序通信。所以如果我能够运行例如 shutdown.exe (由我编写的.NET)我可以告诉我的应用程序关闭。

为了保持“简单”,我试图在Intellij中的Android项目中按“运行”时启动 calc.exe 。但我设法在IntelliJ用于Android 的build.xml配置中完全丢失了

我试过了:

  • 将exec任务添加到build.xml
  • 告诉他运行Ant目标
  • 添加一些测试

他们都没有效果。我可以在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)。如果其他人需要帮助的话,我会把剩下的部分计算出来并更新帖子。

克里斯

2 个答案:

答案 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目标:

run ant before launch

我在一个小型示例项目中验证了它,并且在IntelliJ IDEA中运行Android配置之前, calc.exe 已正确执行。

答案 1 :(得分:1)

当我在Google中搜索相同的问题时,我遇到了这个问题。也许发布我的答案已经很晚了,但总比没有好。

我发现你不需要一个ant构建脚本,就是使用IntelliJ默认系统就好了。例如,我正在使用android-ndk进行我的项目,所以我希望在正常构建之前运行ndk-build NDK_DEBUG=1 -j4

以下是解决方案:

  1. 运行 - &gt;编辑器配置
  2. 选择对话框左侧的构建配置。
  3. 右侧有一个区域标记为发布前
  4. 点击“加号”按钮,在弹出菜单中选择Run External Tool
  5. 点击新弹出窗口中的“加号”按钮
  6. 然后你进入真正的配置窗口。
  7. 可悲的是,我现在无法发布图像。您必须要查看我的blog