react-native的aar版本和所支持的CPU环境,一般情况下就能够实现项目的正常运行,但是在另外一些情况下,比如有其他的功能引入也需要引入so文件,这样同时会现在CPU的环境,这样就可能会存在冲突;
比如高德地图,只支持‘armeabi’环境(由于高德的在线说明文档更新延迟,其实高德SDK已经支持arm64-v8a,不过这个支持无法解决CPU环境冲突的问题)
总之可以得到一个结论,armeabi-v7a的so包能够兼容的使用到armebai环境下,由此可以出现一个解决方案;
例如项目中使用的车牌识别只支持armeabi包 而react-native却必须使用armeabi-v7a,造成项目使用起来后就崩溃.
不啰嗦了,直接放解决方案.
由此想法得出以下解决方案.
- 使用armeabi-v7a环境生成 app_xxx.apk 文件;
这个不用我说你肯定能找到所在的文件夹 - 解压 app_xxx.apk 文件(可以重命名rar或者zip,然后再解压),得到 $解压目录 \lib\armeabi-v7a的所有libxxxx.so文件;
这一步就是把包给解压缩了,然后把里面文件拿出来.放到你项目armeabi文件夹里.
根据build的提示来删除相应的文件.
这样就解决了相应的冲突
网友评论