Why does Android Studio ignore my .bashrc file on OSX?

I downloaded a project that uses Android ndk. The gradle file contains the lines:

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

This works great on startup ./gradlew assembleDebug. I have the following content in ~/.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}"

However, when I try to build a project from within the Android studio, I get

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

From which it follows that the variable is PATHnot set properly in the environment, and even the process ndk-buildcannot work. Touching .bashrc should do the job . Why doesn’t Android Studio select the environment variable PATHspecified in the file .bashrc?

EDIT PSEUDO ANSWER: Android Studio , Xcode, , . , , local.properties ndk.dir, , ndk-build , PATH. local.properties .

+4
1

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'
}

gradle:

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

Source: https://habr.com/ru/post/1615993/


All Articles