不能建立与Android的NDK和Android Studio项目 [英] Can't build project with android-ndk and Android Studio
问题描述
我有FFmpeg的和其他外部库的Android项目。我下载了最新版本的NDK(NDK-R10),并且正在运行Android 0.8.0工作室。我也运行Windows 8 64位用的cygwin的最新版本。
I have an android project with FFmpeg and other external libraries. I downloaded the latest version of the ndk (ndk-r10) and am running Android Studio 0.8.0. I am also running Windows 8 64bit with the latest version of cygwin.
我的项目建立没有问题,我添加了ndk.dir到local.properties。当我尝试运行我得到这个错误信息:
My project builds without issue and I added the ndk.dir to local.properties. When I try to run I get this error message:
The System cannot find the path specified
Error:Execution failed for task ':app:compileDebugNdk'.
com.android.ide.common.internal.LoggedErrorException: Failed to run command:
C:\Users\John1\AppData\Local\Android\android-ndk-r10\ndk-build.cmd
NDK_PROJECT_PATH=null
APP_BUILD_SCRIPT=C:\Users\John1\AndroidstudioProjects\android-project\app\build\intermediates\ndk\debug\Android.mk
APP_PLATFORM=android-18
NDK_OUT=C:\Users\John1\AndroidstudioProjects\android-project\app\build\intermediates\ndk\debug\obj
NDK_LIBS_OUT=C:\Users\John1\AndroidstudioProjects\android-project\app\build\intermediates\ndk\debug\lib
APP_ABI=all
Error Code:
1
Output:
The system cannot find the path specified.
寻找建议。谢谢你。
Looking for advice. Thank you.
推荐答案
与Android工作室,NDK的支持是preliminary和你的* .mk文件将被忽略。
你可以让Android工作室/ gradle这个通过取消默认NDK集成重复使用它们,使其本身调用NDK的构建(.CMD),并使用标准的库/
位置整合.so文件:
with Android Studio, NDK support is preliminary and your *.mk files are ignored.
You can make Android Studio/gradle reuse them by deactivating the default NDK integration, make it call ndk-build(.cmd) by itself, and use standard libs/
location for integrating .so files:
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig{
minSdkVersion 15
targetSdkVersion 19
versionCode 101
versionName "1.0.1"
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type: Exec) {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath
} else {
commandLine 'ndk-build', '-C', file('src/main').absolutePath
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
如果您需要更多的信息,这是我对这个话题的博客文章:<一href=\"http://ph0b.com/android-studio-gradle-and-ndk-integration/\">http://ph0b.com/android-studio-gradle-and-ndk-integration/
If you need more information, here is my blog post on this topic: http://ph0b.com/android-studio-gradle-and-ndk-integration/
这篇关于不能建立与Android的NDK和Android Studio项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!