Android Studio 2.2 打包Jar调用.so动态链接库
来源:互联网 发布:彩票开奖接口版源码 编辑:程序博客网 时间:2024/05/28 06:05
一、使用Android Studio 2.2 编译.so文件(若已有编译好的.so文件继续下一步)
首先新建工程,使用CMake进行JNI编程,具体操作见下面的链接,工程相关内容如下图所示。
Android Studio 2.0+ 使用CMake编程:http://blog.csdn.net/auroraexecue/article/details/73350771
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目录中,在本工程中路径为“JNItoJarApplication\jnitojarapplication2\src\main\jniLibs”,并将.so文件的文件夹都拷入jniLibs文件夹下,如下图所示。
二、配置新建Moudle的build.gradle文件,生成jar文件
1、由于新建的Moudle需要调用jniLibs下的文件,因此要在build.gradle(Module: jnitojarapplication2)中添加配置,代码及添加效果如下。
sourceSets.main.jniLibs.srcDirs = ['jniLibs']
2、继续配置build.gradle(Module: jnitojarapplication2)文件,指定包名,并配置生成文件目录
在最下面添加如下代码,效果如下图。
task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')//要生成的.jar文件来源
into('build/libs/')//jar包的生成路径
include('classes.jar')
rename ('classes.jar','jnitest.jar')//命名包为“jnitest”,名称可以自己定
}
task deleteOldJar(type: Delete) {
delete 'build/outputs/jnitest.jar' //“jnitest.jar”为要生成的包名和后缀,这一句的意思是:如果包已经存在,则删除掉
}
exportJar.dependsOn(deleteOldJar, build)
3、生成jar文件
点击工程中右侧的”Gradle“按钮,按下图中的路径找到”exportJar“一项,然后双击,等待生成jar文件
4、生成成功后在Moudle工程目录build\libs中找到生成的名为jnitest.jar的包。
至此jar包的生成就完成了,下面是调用。
三、任意工程通过jar包调用.so动态链接库中的方法
1、新建任意工程或者现有任意工程都可以,下面新建任意工程,工程名为MyJNItest。
2、将之前生成的jar文件拷到工程“app\libs”目录下,然后添加依赖,具体就不详细说了,效果如下图。
3、在工程目录中,“app\src\main”目录下新建“jniLibs”文件,并将所有.so文件文件夹拷入“jniLibs”中,具体操作同上面的操作,效果如图。
4、在工程中调用验证效果,代码如下。
5、运行效果
到此包的生成和调用就完成了。
阅读全文
0 0
- Android Studio 2.2 打包Jar调用.so动态链接库
- Android studio通过JNI调用动态链接库SO
- android 中调用 so 动态链接库
- Android studio下的Android JNI调用以及动态链接库.so的生成
- 调用动态链接库*.so
- android studio 打包 so 库
- Android下动态链接库.so调用的简单例子
- Android下动态链接库.so调用的简单例子
- Android下使用dlopen函数动态调用.so链接库
- Android下使用dlopen函数动态调用.so链接库
- Android下动态链接库.so调用的简单例子
- 在android里调用第三方动态链接库.so
- Android下使用dlopen函数动态调用.so链接库
- Android Studio 打包so
- Android.mk打包 so库 & jar包
- python 调用so dll动态链接库
- java调用so动态链接库
- Java JNI 调用 so 动态链接库
- 汇总常用的jQuery操作Table tr td方法
- android 画.9 图,或生成点9 图,要领
- 理解面向对象
- CSS盒子塌陷的5种解决方法
- 二分查找
- Android Studio 2.2 打包Jar调用.so动态链接库
- Android笔记:Instant Run引发的错误
- linux和windows本地机器互传文件
- 按钮逐渐覆盖颜色的css写法
- 要开始写博客啦!
- Java集合-LinkedList
- C++入门基础知识详解
- DEDE织梦数据库批量修改替换文章标题和内容_诉言网
- Integer对象自动装箱问题