Почему Android Studio игнорирует мой файл .bashrc на OSX?

Я загрузил проект, который использует Android ndk. Файл gradle содержит строки:

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

Это отлично работает при запуске ./gradlew assembleDebug . У меня есть следующее содержимое в ~/.bashrc :

 # Append android sdk paths and stuff. export ANDROID_HOME=/Users/gradha/instalacion_manual/android-sdk-r10-mac_x86 #export ANDROID_NDK_ROOT=/Users/gradha/instalacion_manual/android-ndk-r8b export ANDROID_NDK_ROOT=/Users/gradha/instalacion_manual/android-ndk-r10e export NDK_PATH="${ANDROID_NDK_ROOT}" export NDK_HOME="${ANDROID_NDK_ROOT}" export PATH=$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/Users/gradha/instalacion_manual/apache-maven-3.3.3/bin:"${ANDROID_NDK_ROOT}" 

Однако, когда я пытаюсь построить проект изнутри студии Android, я получаю

 process.internal.ExecException: A problem occurred starting process 'command 'ndk-build'' at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:196) at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:325) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:83) ... 1 more Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'ndk-build' at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27) at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:65) ... 1 more Caused by: java.io.IOException: Cannot run program "ndk-build" (in directory "/Users/gradha/project/questionity/archivo/SuperpoweredSDK/Android/CrossExample/app"): error=2, No such file or directory at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25) ... 3 more Caused by: java.io.IOException: error=2, No such file or directory ... 4 more 

Это говорит о том, что переменная PATH не устанавливается должным образом в среде, и даже процесс ndk-build не может работать. Прикосновение к .bashrc должно выполнять эту работу . Почему Android Studio не выбирает PATH среды PATH указанную в файле .bashrc ?

EDIT PSEUDO ANSWER : Android Studio следует за другими средами разработки, такими как Xcode, чтобы избежать личных файлов конфигурации пользователя, изменяющих процесс сборки программного обеспечения. Правильное обходное решение, например Алекс, заключается в том, чтобы прочитать внешний файл ndk.dir переменной ndk.dir указывающей на правильный путь, и ndk-build эту переменную, чтобы построить полный путь к ndk-build вместо того, чтобы полагаться на PATH среды. Файл local.properties может храниться вне контроля источника и настраиваться для каждой проверки.

Мы ничего не можем сделать с сломанным PATH для Android Studio, но легко решить проблему ndk-build – раз и навсегда.

Добавьте следующий блок в начало файла build.gradle для модуля (приложения или библиотеки):

 Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkBuild = properties.getProperty('ndk.dir') + '/ndk-build' import org.apache.tools.ant.taskdefs.condition.Os if (Os.isFamily(Os.FAMILY_WINDOWS)) { ndkBuild += '.cmd' } 

И вот задача градиента:

 task buildNative(type: Exec, description: 'Compile JNI source via NDK') { commandLine "$ndkBuild" … }