Не удается запустить 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