今天开始我正式学习混合开发啦,我会记录我的坑点,避免大家入坑,当然我也是个新手,什么都不知道的小白
当然怎么下载SupserWebView的SDK我就不介绍了,我就介绍如何整合进入androidStudio里面
如果你含有极光推送的,把armeabi-v7a、x86...这些给删除掉,只保留armeabi的即可,因为armeabi可以兼容性是最强的,armeabi-v7a、x86这些存在的目的只是为了更好的针对性的兼容而存在的,一个手机基本都会兼容二种ABI,我们以ARMv7为例,这个设备将主要ABI定义为armeabi-v7a,而将辅助ABI定义为armeabi,然后许多基于x86的设备也可行 armeabi-v7a ,所以我们用armeabi的即可
SuperWebView也只保留armeabi的
这样做的目的是直接告诉手机去拿armeabi的so包。
我当时就是没有那样做,反而导致如下的错误:
java.lang.UnsatisfiedLinkError: No implementation found for boolean com.uzmap.pkg.uzcore.external.Enslecb.sm(java.lang.Object) (tried Java_com_uzmap_pkg_uzcore_external_Enslecb_sm and Java_com_uzmap_pkg_uzcore_external_Enslecb_sm__Ljava_lang_Object_2)
如果你只保留一个ABI的时候,建议在app里面的build中加入ndk.abiFilters
再次出现一个新的错误
Fatal signal 11 (SIGSEGV), code 1, fault addr 0xd7
最近这几天又去搜索了下关于只要armeabi 或者只要armeabi-v7a(目的是为了减少APK的大小),发现只保留 armeabi 文件夹从性能角度是不明智的
最后解决办法如下:
保留 armeabi-v7a和armeabi 这2个文件夹,但是官网提供的armeabi-v7a下的so包放到我这app里面会崩溃,我最后是采用了armeabi里面的so包,拷贝一份放到了 armeabi-v7a文件里面,就可以使用了