使用ant(build.xml)编译jni目录

时间:2011-02-25 22:48:36

标签: android ant build-automation

我正在使用ant来构建我的Android应用程序(ant compileant install等等)并且我正在添加一些NDK源(在jni/目录内)并且我想要有一个规则用ant重新编译jni/目录,然后将我的app安装到我的设备/模拟器中,如下所示:

$ ant jni-and-install

而不是:

$ make -f jni/Makefile APP=myapp    
(jni compilation & installation)
...
$ ant install

我试图找到把我的规则放在build.xml中的地方,但我不知道在哪里。

在安装到设备之前,我应该如何编辑ant以在make目录上调用jni/

2 个答案:

答案 0 :(得分:6)

您可以使用exec ant task

<target name="install">
    <!-- ... -->
</target>

<target name="jni">
    <exec executable="make">
        <arg line="-f jni/Makefile APP=myapp"/>
    </exec>
</target>

<target name="jni-and-install" depends="jni, install"/>

答案 1 :(得分:3)

您可以使用exec ant任务。我认为将以下内容放在build.xml中的-pre-build目标中可以解决这个问题:

<exec executable="make" failonerror="true">
    <arg line="-f jni/Makefile APP=myapp"/>
</exec>

编辑:JB的解决方案允许ant jni之类的东西构建jni代码,而无需构建项目的其余部分。通过将上述内容包装在名为“jni”的目标中,然后将depends="jni"添加到您的-pre-build目标中,您可以充分利用这两个世界。