Не удается запустить ndk-build на студии Android с gradle на osx yosemite

Я пытаюсь запустить ndk-build из моего build.gradle в проекте Android Studio 1.0 на MAC OSX Yosemite.

task ndkBuild(type: Exec) {
    commandLine 'ndk-build', '-C', file('src/main').absolutePath

}

Я указал ndk-dir в файле local.properties, но я получаю эту ошибку

A problem occurred starting process 'command 'ndk-build'

Если я запускаю gradle script из командной строки, как это, все успешно создает

./gradlew :myproject:assembleDebug

Поэтому по какой-то причине среда IDE не может вызвать ndk-build. Я включил некоторую отладочную информацию в Студия Android, и у меня есть следующая ошибка

Caused by: java.io.IOException: error=2, No such file or directory

Таким образом, среда IDE не может найти исполняемый файл ndk-build exe, однако он запускается с терминала внутри IDE, и можно найти ndk-build exe.

Спасибо

Ответ 1

ИЗМЕНИТЬ

Теперь вы можете получить путь следующим образом:

android.ndkDirectory.getAbsolutePath()

Я обновил образец ниже.


Как вы сказали в комментариях, commandLine требуется путь к программе ndk-build, чтобы заставить ее работать. Вот способ извлечения пути ndk в build.gradle:

// call regular ndk-build script from app directory  
task ndkBuild(type: Exec) {
        def ndkDir = android.ndkDirectory.getAbsolutePath()

        commandLine ndkDir + "/ndk-build", '-C', file('src/main').absolutePath
    }

У вас будет предупреждение "не могу вывести аргумент типа", вы можете смело игнорировать это предупреждение. Добавьте // noinspection GroovyAssignabilityCheck, чтобы избавиться от него.

Это было протестировано с помощью gradle 1.2.3