Сборка Android NDK со скриптом ANT - PullRequest
21 голосов
/ 15 сентября 2011

Можем ли мы использовать скрипт ANT для сборок Android NDK? Если да, то как? А если нет, то почему нет?

Понятия не имею

Ответы [ 2 ]

43 голосов
/ 30 сентября 2011

Вызовите 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>

Затем вы можете установить ndk.dir, чтобы он указывал на каталог NDK из вашего файла local.properties, или установите его накомандная строка.Я делаю это:

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

Теперь запуск ant автоматически создаст ваш нативный код.Плюс, запуск 'ant clean' очистит ваш нативный код.

Обновлено: Добавлено failonerror="true" в задачи <exec> - это приведет к прерыванию ant в случае сбоя make.Без этого он просто пойдет и сгенерирует APK с недопустимым двоичным файлом.Не хорошо!

9 голосов
/ 25 февраля 2013

вот что добавить в ваш 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>

определить ndk.dir в файле local.properties: ndk.dir = C: \ EclipseWorkspace \ android-ndk-r8d

Ситуация, о которой я хотел упомянуть, после этого вы получаете сообщение об ошибке «% 1 не является допустимым приложением Win32» при запуске ANT для этого переопределения цели.Для меня мне пришлось обновить до NDK R8d, а также обновить следующую строку, чтобы он получал ndk-build.cmd (эта версия ndk может работать на окнах и через Cygwin:

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

...