这个问题在有源码的情况下,比较容易解决。要是没有源码呢?要这么解决?下面就来聊一聊

      首先这个问题的原因是:当targetSdkVersion>=23(安卓6.0)且使用debug签名时,在6.0+的Android设备上运行App出现刚刚的错误Log :

     其实引起该问题的最根本原因,是so动态链接库的代码并非PIC(Position independent code)。

当你在网上搜索此问题时,会发现90%以上的搜索结果都告诉你把targetSdkVersion设为小于23。诚然,这样是可以回避掉上述问题,但只是治标不治本,并非终极方案。

     但是我们又没有动态库的源码,根本没办法去修改动态库。 这个时候我们仔细审题发现,导致这个问题的因素有两个,并且是要两个同时成立。

即:1.动态库存在 PIC问题

        2.使用debug签名。

动态库我们是没办法改了,所以我们来改debug签名问题。

正式apk包不会报错

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐