背景:
项目上需要使用掌机二次开发一款App,这款App需要调用厂商的库,厂商给提供一个aar库。
经历:
将aar库直接放入Qt工程的安卓目录下的libs文件夹中,发现程序直接闪退。经过摸索发现其实可以将aar的后缀改为zip然后解压缩,将其中class.jar拿出来添加到libs文件夹中,这样就能使用了。具体的解决方法见:
Qt for android如何使用安卓aar包-CSDN博客
但是这样还不够,后来发现在调用了某些API之后会出现因为缺少某些库导致程序闪退的现象。我遇见的问题就是使用扫码功能Api的时候调用成功,但是后来使用红外Api的时候,程序闪退,Qt creator界面打出来的信息是缺少libDeviceApiM.so库。
其实在厂商给提供的aar中解压缩后有一个jni文件夹,如图:
打开文件夹
在这里选择对应的架构,我使用的是v7a.
将这个so库添加到apk包中就可以了。
如何将so包添加到apk中
导入的方法为:
1.点击详情
2.在展开的界面中点击添加
这样就会将so包编译到apk中了。
再次启动程序测试,发现程序运行成功了,没再崩溃。
不知道后面还会不会有坑了,等到后面再遇到那就再继续写吧。