Я загрузил проект, который использует Android ndk. Gradle файл содержит строки:Почему Android Studio игнорирует мой файл .bashrc на OSX?
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
могут работать. Touching .bashrc is supposed to make this work. Почему Android Studio не выбирает переменную окружения PATH
, указанную в файле .bashrc
?
EDIT PSEUDO ANSWER: Android Studio следует за other development environments like Xcode, чтобы избежать личных конфигурационных файлов пользователей, изменяющих процесс сборки программного обеспечения. Правильным обходным решением like Alex mentions является просмотр внешнего файла local.properties
с переменной ndk.dir
, указывающей на правильный путь, и отправьте эту переменную, чтобы построить полный путь до ndk-build
вместо того, чтобы полагаться на PATH
среды. Файл local.properties
может храниться вне контроля источника и настраиваться для каждой проверки.
сделал вы просто установили это? попробуйте выйти/войти в систему или перезагрузить – zapl
Если вы не запускаете Android Studio из командной строки, вряд ли наследуйте что-либо в своем .bashrc –
@ChrisStratton, начиная с Android Studio, из командной строки с помощью ''/Users/gradha/Applications/Android \ Studio.app/Содержание/MacOS/studio'' не изменяет результат, кажется, что среда IDE явно порождает оболочку, игнорирующую все файлы конфигурации пользователя. –