最近搞海外,发现同样的源码打成apk是正常的,但是打成aab却崩溃,老是报找不到so,但是so又存在aab当中,花费了一些时间,下边是解决思路
首先,我发现不同系统的手机报错的信息不一样,这个让人很蛋疼,于是我从能解决的报错信息开始,最开始是报错资源id找不到,为了解决问题,我把字节的aabresguard插件暂时注释了。
然后报错是找不到so,但是我发现在8.0的手机上是正常的,通过google搜索并且做了如下步骤
1.把targetSdk升级到了31,
2.在gradle.properties里面加了
android.bundle.enableUncompressedNativeLibs = false这个属性
通过上边的操作,我发现在小米,华为,三星手机上都可以了,但是在oppo手机上还是不行,通过adb命令
adb shell pm path com.thundercleaner.appboost
查看,发现在oppo手机上只安装了base.apk,而在其他厂商会安装base.apk还有arm64_v8a.apk等apk,这就更加蛋疼了,为啥oppo手机不行呢?
经过测试发现,国内oppo手机应该是被阉割了,我们用海外oppo手机测试是一切正常的,这个问题折腾了两天,总算是告一段落了。
总结经验,安装aab,不同的系统会报不同的错,有的是报找不到so,有的是报资源不对,有的是报so库里面有问题,我们先多用不同手机测试,然后从简单错误上手解决,最后再去解决难的问题。