2014-12-17 11 views
11

Próbuję uruchomić ndk-build z mojego build.gradle w projekcie Android Studio 1.0 na Mac OS X Yosemite.Nie można uruchomić programu ndk-build w Androidzie z gradle na osx yosemite

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

} 

mam określono NDK-Dir w pliku local.properties ale ja dostaję ten błąd

A problem occurred starting process 'command 'ndk-build' 

Jeśli uruchomię Gradle skrypt z linii poleceń jak to wszystko z powodzeniem buduje

./gradlew :myproject:assembleDebug 

Z jakiegoś powodu IDE nie może wywołać ndk-build. Włączyłem pewne informacje debugowania w Android studio i mam następujący błąd

Caused by: java.io.IOException: error=2, No such file or directory 

Więc IDE nie można znaleźć jednak NDK-build exe działa od terminalu wewnątrz IDE NDK-build exe można znaleźć.

Dzięki

+0

Cóż mam obejście teraz, IDE nie może odnaleźć ścieżki do NDK-budować tak umieścić pełną ścieżkę dostępu w linii poleceń „fullpath/NdK-build” to działa – tech74

+0

Czy skonfigurowałeś system operacyjny Android do korzystania z opakowania Gradle? – Emanuelez

Odpowiedz

14

EDIT

Teraz można pobrać ścieżkę takiego:

android.ndkDirectory.getAbsolutePath() 

zaktualizowałem poniżej próbki.


Jak powiedział w komentarzach, commandLine wymaga ścieżkę programu NDK-build, aby to działało. Oto sposób, aby odzyskać ścieżkę NDK w 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 
    } 

Będziesz mieć „nie można wywnioskować typu argument” ostrzeżenie osady, można zignorować to ostrzeżenie. Dodaj // noinspection GroovyAssignabilityCheck, aby się go pozbyć.

ten został przetestowany z Gradle 1.2.3

+1

Awesome, szukałem tej sztuczki ndkDir! Musiałem jednak napisać '' 'commandLine ndkDir + '/ ndk-build.cmd'' ' – PhilLab

+0

Właściwy sposób na uzyskanie ndkDirectory z użyciem android.ndkDirectory –

+0

Ogólnie mówiąc, nie trzeba konwertować na absolutePath, względne jest w porządku –