Android Studio中无法识别路径变量(无法识别ndk-build命令)

Stp*_*tpn 4 macos path gradle android-ndk android-studio

我有一个Android Studio项目,它无法识别ndk-build的PATH变量集.

如果我ndk-build从终端运行我得到:

stpns-MacBook-Pro:~ stepanboltalin$ ndk-build
  Android NDK: Could not find application project directory !    
  Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.    
  /usr/local/Cellar/android-ndk/r10b/build/core/build-local.mk:148: *** Android NDK: Aborting    .  Stop.
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试在Android Studio中编译项目,我会在'ndk-build'commandLine上得到错误(下面是build.gradle的摘录:

task ndkBuild(type: Exec) {

 # some stuff... 

    if (ant.properties.os == 'windows') {
        commandLine 'ndk-build.cmd'
    } else {
        commandLine 'ndk-build'
    }


}
Run Code Online (Sandbox Code Playgroud)

现在如果我添加绝对路径一切正常:

task ndkBuild(type: Exec) {

 # some stuff... 

    if (ant.properties.os == 'windows') {
        commandLine 'ndk-build.cmd'
    } else {
        commandLine '/usr/local/opt/ndk-build'
    }


}
Run Code Online (Sandbox Code Playgroud)

虽然这个问题似乎已经解决了,但是像这样的build.gradle对于开发来说是次优的.我怎样才能解决这个问题?

Lás*_*tra 5

您可以在根项目的local.properties文件中添加NDK的路径:

ndk.dir=/opt/android/ndk
Run Code Online (Sandbox Code Playgroud)

然后像这样替换ndk-build的调用:

def localProperties = new Properties()
localProperties.load(project.rootProject.file('local.properties').newDataInputStream())
def ndkDir = localProperties.getProperty('ndk.dir')
def ndkBuildPrefix = ndkDir != null ? ndkDir + '/' : '';

if (ant.properties.os == 'windows') {
    commandLine ndkBuildPrefix + 'ndk-build.cmd'
} else {
    commandLine ndkBuildPrefix + 'ndk-build'
}
Run Code Online (Sandbox Code Playgroud)