不久前,因为需要接入人脸识别以及某个tts的播报功能,人脸识别使用旷世,语音本地播报使用思必驰,在集成的时候出现思必驰的so库无法集成到apk内,思必驰的so库结构为:
,旷世的sdk却是使用的aar,他们的so库是直接集成在aar中,而且是使用的正式包,然后两个功能sdk集成到一起的时候,就发现,旷世的so库能正常加载到apk的安装目录下面.而思必驰的so却是缺失的!
然后我疯狂在百度,google搜索这种情况.但是,却并没有得到答案!回头一想,既然旷世的so集成在aar中可以加载,那么,思必驰的是否也可以呢!
带着死马当做活马医的想法,我尝试了一下,首先我是使用的android stidio创建了一个library,然后把sdk,so库放入这个library,
生成以及具体配置请看https://blog.csdn.net/qq_36333309/article/details/102563878
因为我在主项目中已经写了思必驰的初始化代码,那么就不在这个library里面做别的操作,然后打开右边的gradle,找到你的这个library,
如图点击assemble,生成aar,
此时生成两个aar文件,注意,因为我主项目的旷世使用的是release的aar,那么,这个思必驰的library也必须是release.aar,别问我为什么,因为我试过用debug.aar,结果被疯狂打脸,生成的apk中有lib这个目录,并且还有so库,
但是我安装的时候发现,这个apk的安装目录下的lib/arm目录并没有这四个so库,这就尴尬了,就是说so库没有被系统生成到安装目录,回过头我们再用一下release.aar,神奇的发现,打包的apk的lib目录一模一样,好吧,我觉得也凉了,安装.,,...........
咦~~~~,成功了你敢信!
,然后,我做这个项目一个星期,心中的大石头总算落地了~ 撒花~~~~