解决串口通信在安卓6.0系统以及以上版本里面报错的问题

做好的串口通信功能在低版本安卓系统可以正常运行,在6.0系统就会报错"Detected problems with app native libraries (please consult log for detail) : libserial_port.so: text relocations",最简单的办法是修改targetSdkVersion<23,当然了这个办法还是不够好,因为现在版本都是30或者更高。所以选择第二种办法打包出来兼容高版本的so文件。

第一步:先下载谷歌的开源代码android_serial_api,链接为https://github.com/cepr/android-serialport-api

第二步:新建一个项目SerialPortTest

第三步:新建一个package,名字为android_serialport_api

第四步:将下载的源码当中的SerialPort.java和SerialPortFinder.java拷贝到android_serialport_api包下

第五步:建立jni目录,将源码当中jni目录下的五个文件都拷贝到新建的jni目录下

第六步:建立jniLibs目录,将源码中的libs目录下的三个文件夹拷贝到jniLibs目录下。

第七步:在build..gradle里面添加一段代码

第八步:添加SDK环境变量

 

第九步:gradle.properties添加 android.useDeprecatedNdk=true

 

第十步:修改Android.mk文件,添加   LOCAL_LDFLAGS += -fPIC

 

第十一步:确认local.properties引用了正确的NDK路径

 

第十二步:打开jni所在目录(右击jni 选择show in explorer),然后进入jni目录

 

第十三步:打开cmd程序 ,进入到该目录下,输入"ndk-build"进行编译

 

libs目录下面自动生成新的so文件,这个so文件就可以用于工作的项目

 

这个so文件就可以用于工作的项目 这样以来就可以在安卓4.4版本、5.1版本、6.0版本 7.1版本里面正常运行。 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值