在Android Studio1.1之后,AS就已经支持jni和so库了,马上发布的1.3正式版,更是可以在clion环境下编译c、c++,更加方便的使用NDK进行开发,网上有很多讲在Android Studio中使用jni的方法,但大多都是在1.1之前的,那时候还没有直接支持jni,所以需要通过给gradle增加task的方式来添加支持。而现在,这一切都不是事!!!
切换到project标签,直接将jar包复制到libs目录下,在添加dependency就可以了。
添加so库有两个方法。但是强烈建议使用简单粗暴的方式。
在main目录点击右键,添加文件夹,命名为jniLibs,需要注意的是,一个字都不能错,这是默认名。
在main下面你可以自定义一个目录,例如:xys。然后在build.gradle的Android标签下,添加如下修改:
sourceSets {
main {
jniLibs.srcDirs = [‘xys‘]
}
}
指定下jniLibs的具体目录即可。
在代码中,只需要:
static {
System.loadLibrary("XXXX");
}
并且指定native对应的方法:
public static native void nativeXXXXX();
这些应该不用讲了。
在使用jni的时候,有几个地方非常需要注意。
在loadLibrary的那个程序,包名一定要和so库的包名一样。
在jniLibs下,最好放置:
这样几个版本最好都要,但是实际上,放一个armeabi-v7a就够了。但是出错的时候,一定要往这个地方上去想。
原文地址:http://blog.csdn.net/eclipsexys/article/details/46324283