Android NDK build with ANT script

2019-01-21 20:06发布

Can we use the ANT script for Android NDK builds ? If Yes how? And if no, then why Not ?

I don't have any idea about it

2条回答
SAY GOODBYE
2楼-- · 2019-01-21 20:19

Call ndk-build from your -pre-build target, like this:

<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>

Then you can set ndk.dir to point at the NDK directory from your local.properties file, or set it on the command line. I do this:

ant -Dsdk.dir=/home/dg/apps/android-sdk-linux_x86-r11/ -Dndk.dir=/home/dg/apps/android-ndk-r6b release

Now running ant will build your native code automatically. Plus, running 'ant clean' will clean your native code.

Updated: Added failonerror="true" to the <exec> tasks --- this causes ant to abort if the make fails. Without it it'll just go right ahead and generate an APK with an invalid binary in it. Not good!

查看更多
做个烂人
3楼-- · 2019-01-21 20:37

here is what to add to your build.xml as others stated:

<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>

define the ndk.dir in local.properties file: ndk.dir=C:\EclipseWorkspace\android-ndk-r8d

The situation i wanted to mention after doing this you get an error "%1 is not a valid Win32 application" while running ANT against this target override. For me i had to upgrade to NDK R8d and also update the following line so that it fetches ndk-build.cmd (this version of ndk can run on windows and via cygwin:

exec executable="${ndk.dir}/ndk-build.cmd" failonerror="true"

查看更多
登录 后发表回答