如题,二者一起使用时,在部分机型上地图不显示。一番查找,发现原因是高德只提供了armeabi和arm64-v8a类型so文件。于是打包的时候设置只保留armeabi,因为armeabi“几乎”兼容所有机型。打包运行,地图显示出来了。
以为这样就结束了,结果证明太天真了。过段时间先后有两个用户反馈华为P7手机安装应用之后,启动时就一直无响应。手上也没有P7来测试,很捉急,这时候想起来在线测试平台。二话不说直奔华为云测试,尼玛,竟然没找到P7的机型。后来在百度MTC测试平台的远程真机测试有P7,而且还限时免费,心中涌过一阵暖流。
在线调试之后,发现是还是ABI兼容问题,一番折腾之后,发现是Realm的问题。我1.2.0版本的Realm,还每个CPU类型都支持。华为P7的CPU类型是armeabi-v7a,我打包时只保留了armeabi,Realm的armeabi库文件不兼容armeabi-v7a。怎么办呢,如果保留armeabi-v7a的话,高德地图因为没有armeabi-v7a文件又要出问题了。后来看到littlezan同学的文章(http://www.jianshu.com/p/73ce9b69050a),发现了生机。就是高德地图的armeabi里的文件复制到armeabi-v7a里一份,然后打包的时候保留armeabi和armeabi-v7a,因为高德的armeabi是可以兼容armeabi-v7a型号的CPU的。
buildTypes {
release {
ndk {
abiFilters = ['armeabi', 'armeabi-v7a']
}
}
打包运行,华为P7运行正常,到此结束。