这个问题在有源码的情况下,比较容易解决。要是没有源码呢?要这么解决?下面就来聊一聊
首先这个问题的原因是:当targetSdkVersion>=23(安卓6.0)且使用debug签名时,在6.0+的Android设备上运行App出现刚刚的错误Log :
其实引起该问题的最根本原因,是so动态链接库的代码并非PIC(Position independent code)。
当你在网上搜索此问题时,会发现90%以上的搜索结果都告诉你把targetSdkVersion设为小于23。诚然,这样是可以回避掉上述问题,但只是治标不治本,并非终极方案。
但是我们又没有动态库的源码,根本没办法去修改动态库。 这个时候我们仔细审题发现,导致这个问题的因素有两个,并且是要两个同时成立。
即:1.动态库存在 PIC问题
2.使用debug签名。
动态库我们是没办法改了,所以我们来改debug签名问题。
正式apk包不会报错