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.dir从local.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.不好!
这是添加到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 = "真"
| 归档时间: |
|
| 查看次数: |
16839 次 |
| 最近记录: |