使用ANT脚本构建Android NDK

Sac*_*and 21 ant android build android-ndk

我们可以使用ANT脚本进行Android NDK构建吗?如果是的如何?如果不是,那么为什么不呢?

我对此一无所知

Dav*_*ven 43

ndk-build来自你的-pre-build目标的电话,如下:

<target name="-pre-build">
    <exec executable="${ndk.dir}/ndk-build" failonerror="true"/>
</target>

<target name="clean" depends="android_rules.clean">
    <exec executable="${ndk.dir}/ndk-build" failonerror="true">
        <arg value="clean"/>
    </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

然后,您可以设置ndk.dirlocal.properties文件指向NDK目录,或在命令行上设置它.我这样做:

ant -Dsdk.dir=/home/dg/apps/android-sdk-linux_x86-r11/ -Dndk.dir=/home/dg/apps/android-ndk-r6b release
Run Code Online (Sandbox Code Playgroud)

现在运行ant将自动构建您的本机代码.另外,运行'ant clean'将清除您的本机代码.

更新:添加failonerror="true"<exec>任务---如果make失败,这会导致ant中止.如果没有它,它就会直接前进并生成一个带有无效二进制文件的APK.不好!

  • 谢谢其实用它完成了,但忘记在这里编辑我做的是<target name ="n"> <echo message ="启动Android NDK构建步骤......"/> <! - 构建JNI代码并创建共享app加载的对象 - > <exec executable ="sh"failonerror ="yes"> <arg value ="$ {env.ANDROID_NDK_ROOT}/ndk-build"/> <arg value ="V = 1"/> </exec> <echo message ="...完成Android NDK构建步骤." /> </目标> (2认同)
  • 在Windows上,你必须使用`sh`作为可执行文件,并使用ndk-build脚本作为第一个参数. (2认同)

j2e*_*nue 9

这是添加到build.xml的内容,正如其他人所说:

<target name="-pre-build">
    <exec executable="${ndk.dir}/ndk-build" failonerror="true"/>
</target>

<target name="clean" depends="android_rules.clean">
    <exec executable="${ndk.dir}/ndk-build" failonerror="true">
        <arg value="clean"/>
    </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

在local.properties文件中定义ndk.dir:ndk.dir = C:\ EclipseWorkspace\android-ndk-r8d

在执行此操作后我想提到的情况是,在针对此目标覆盖运行ANT时,会收到错误"%1不是有效的Win32应用程序".对我来说,我必须升级到NDK R8d并更新以下行,以便它获取ndk-build.cmd(这个版本的ndk可以在windows上运行并通过cygwin:

EXEC可执行= "$ {} ndk.dir/NDK建造.在cmd " failonerror = "真"

  • '.cmd'部分在Windows上很重要 (3认同)