当我们在开发时需要用到包含本地方法的库时,需要用ndk,会出现下列问题
1.可能会出现找不到ndk:
Error:Execution failed for task ':serialPortLibrary:compileReleaseNdk'.
> Error: Your project contains C++ files but it is not using a supported native build system.
Consider using CMake or ndk-build integration with the stable Android Gradle plugin:
https://developer.android.com/studio/projects/add-native-code.html
or use the experimental plugin:
http://tools.android.com/tech-docs/new-build-system/gradle-experimental.
解决办法:在项目的gradle.properties文件中加入这句
android.useDeprecatedNdk=true
2.加入上面一句时还可能报下列错误
Error:Execution failed for task ':serialPortLibrary:compileReleaseNdk'.
> com.android.ide.common.process.ProcessException: Error while executing 'E:\\ndk\\android-ndk-r10d\\android-ndk-r10d\\ndk-build.cmd' with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=F:\\androidstudioworkspace\\LearnTones\\serialPortLibrary\\build\\intermediates\\ndk\\release\\Android.mk APP_PLATFORM=android-19 NDK_OUT=F:\\androidstudioworkspace\\LearnTones\\serialPortLibrary\\build\\intermediates\\ndk\\release\\obj NDK_LIBS_OUT=F:\\androidstudioworkspace\\LearnTones\\serialPortLibrary\\build\\intermediates\\ndk\\release\\lib APP_ABI=all}
解决方法:在你导入的包含jni的库的build.gradle文件中加入这句
sourceSets.main {
jni.srcDirs = []
}
注意是在android{ ... }之间加即...的地方加,问题就可以解决了,自己踩过的坑,希望可以帮到你