android开发004-JNI调库demo总集(java层调用底层C/C++/其他语言库)【实践】

本文介绍了如何在AndroidStudio17.0.9环境中使用JDK17和Gradle8.4进行JNI开发,包括数据类型映射、创建JNI方法、编译NativeC++库、加载.so文件及解决ABI兼容性问题。作者分享了遇到的错误和解决方案,以实践案例呈现。
摘要由CSDN通过智能技术生成

1.demo的环境

androidstudio 17.0.9

JDK 17

gradle 8.4

2.demo实践开始的步骤

2.1  C++层、JNI、java层数据类型映射

java层没有无符号类型

java - jni

java

java-C++(从java层往下C++传的时候:java-byte[] 对应 C++-int8_t* )

2.2创建Native C++工程

2.3创建JNI方法

创建两个JNI方法调用底层的C++层接口myFunction

2.4 java层使用并测试JNI方法

目前我是在Naitve C++工程中的mainactivity中直接测试了JNI是没有问题的,但是单独把他变成库给另外的安卓工程使用的时候还会报错,暂时没空解决。如果单纯测试JNI,到这个步骤就结束了。

2.5 修改cmakelist ,编译Native c++工程生成 .so库

2.6新建empty activity,使用上面生成的so库

so库放置的路径

读取so库路径

2.7 调用生成so库方法

在mainActivity中调用

目前2.5-2.7报错问题为xxxx.so is not an ABI

网上找到的原因是说这个库编译的平台架构与使用该库的平台架构不符——但未解决

2.8jniLibs无法引入.so文件

参考这个就可以啦

解决jniLibs无法引入.so文件_libv4l2jni.so is not an abi-CSDN博客

可以查看上一篇 JNA demoandroid开发002-JNA调库demo总集(java层调用底层C/C++/其他语言库)【实践】-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值