android JNI 开发之—导入so库、jar包并调用

本文实现了,在自己的项目中调用第三方的so库、第三方的jar包。本人小白,如有错误,还请各位大佬指出,不胜感激。

-----------------------------------------------------调用so库--------------------------------------------------
实验环境:AS:3.3.1
自己项目的包名:com.example.toolbar

第三方的so库和头文件声明

需要材料:第三方的so库,so库的头文件声明(必须要有声明,要声明即可)
要导入的第三方声明如下,包名是ryd.gyy.cjni,类名是cjni,方法名是getStr

Java_ryd_gyy_cjni_cjni_getStr(JNIEnv *env, jobject instance) {

}

导入so库

这里有两种方法导入so库

  • 方法一
    在main下,新建jniLibs,并将so库复制进去
    在这里插入图片描述
    将目录切换到android,如下,证明导入成功
    在这里插入图片描述
    说明:jniLibs是AS默认加载so库的路径,所以方法一不需要声明
  • 方法二
    把so文件复制到app/libs目录下,没有lib可以新建一个
    在这里插入图片描述
    在app的build.gradle的android{}中添加
   sourceSets {
       main {
           jniLibs.srcDirs = ['libs']
       }
   }

说明:这段代码的意思是增加AS搜索so库的一个路径,就是除了jniLibs,AS还会从app/libs中搜索so库
在这里插入图片描述

创建调用so库的jni文件

在java下创建一个和我们项目同级的包名(ryd.gyy.cjni),继续在创建的包名下新建cjni.java,并在其中声明native方法和静态库
在这里插入图片描述

调用so库中的方法

        //调用so库中的方法
        message = (TextView) findViewById(R.id.message);
        message.setText("so库中的内容:" + cjni.getStr());

运行一下,成功
在这里插入图片描述

-----------------------------------------------------导入第三方jar包--------------------------------------------------

导入jar包到app/lib

如图,将jar包放到app/lib下
在这里插入图片描述
然后执行下图,选择导入的module,比如app,点击OK
在这里插入图片描述

最后查看app下的build.gradle,有implementation,这样就成功了
在这里插入图片描述

作者:鸣人的修炼场
出处:https://blog.csdn.net/baidu_33693586

参考教程:
Android Studio导入第三方库、依赖jar包、so文件的几种方式手把手教学
Android Studio JNI开发-1-引入第三方so文件

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值