1.现在android studio2.2版本已经集成了NDK开发包,可直接在里面进行下载
它会默认下载到当前sdk路径下,D:\sdk\ndk-bundle,将此路径配置到环境变量中,通过ndk-build命令测试是否配置成功。
2.在项目中声明一个本地方法,在Terminal窗口中进入到当前java目录中执行命令 javah -jni 包名.类名 如果提示找不到类文件,可加上-classpath。
会生成一个.h文件。
3.在main目录下新建jni文件夹,把.h文件放入该文件夹中,并新建.c文件,实现在项目中的本地方法。
4.在jni文件夹下新建Android.mk文件,,在Terminal窗口中进入jni文件夹下,执行命令ndk-build,
最后会生成.so库
。
5.在local.properties中加上ndk的目录和在build.gradle中的defaultConfig加入ndk{moduleName "firstJni"}
6.调用:
static { System.loadLibrary("firstJni"); }
注意:1.如果在声明本地方法时出现 cannot resolve corresponding jni function 错误,在setting中的plugins,把Android NDK Support 对勾取消。
2.Java.lang.UnsatisfiedLinkError: Couldn’t load xxx from loader dalvik.system.PathClassLoader。
原因:android studio导入so文件没有编译到apk里面去,打开build.gradle,在android的标签下加入如下代码:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
3.Error:Execution failed for task ':app:compileDebugNdk'.
> Error: Your project contains C++ files but it is not using a supported native build system.
在gradle.properties中加入android.useDeprecatedNdk=true代码。