Android Studio 2.2 打包Jar调用.so动态链接库。
一、使用Android Studio 2.2 编译.so文件(若已有编译好的.so文件继续下一步)
首先新建工程,使用CMake进行JNI编程,具体操作见下面的链接,工程相关内容如下图所示。
1,、定义native方法
2.编写.cpp文件
3、调用JNI检验native方法是否通过
4、运行效果
二、新建Module,导入.so文件
1、右击工程目录app新建Module
2、选择Android Library,然后next,操作如下
3、填写Module名称时,一定要保证包名和.so文件原包名一致,否则无法调用,然后Finish。
4、在以后的运行或者修改配置过程中,有时会提醒如下图这样的错误,虽然不知道是什么原因,只要按路径提示在工程中删掉报错文件,然后Make一下就好了。
5、新建Module工程目录入如下图所示,打开目录新建一个java类,并声明本地方法,类名和类的路径必须和.so 文件原类名和路径一致,否则无法调用。也可以将原来的类直接复制过来,总之要保证类名和方法名与.so库一致。
6、在新建Module目录中新建jniLibs文件夹,和正常工程调用.so动态链接库一样,只不过是在新建Module目录中,在本工程中路径为“JNItoJarApplicationjnitojarapplication2srcmainjniLibs”,并将.so文件的文件夹都拷入jniLibs文件夹下,如下图所示。
二、配置新建Moudle的build.gradle文件,生成jar文件
1、由于新建的Moudle需要调用jniLibs下的文件,因此要在build.gradle(Module: jnitojarapplication2)中添加配置,代码及添加效果如下。
sourceSets.main.jniLibs.srcDirs = ['jniLibs']
2、继续配置build.gradle(Module: jnitojarapplication2)文件,指定包名,并配置生成文件目录。