我正在使用ant来构建我的Android应用程序(ant compile
,ant 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/
?
答案 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目标中,您可以充分利用这两个世界。