问题表象
高版本模拟器(Android 8.0)运行地图出现黑屏,缩放按钮及LOGO正常显示,LOGCAT会输出如下日志
java.lang.UnsatisfiedLinkError: dlopen failed: "xxx.so" has no section headers
或
java.lang.UnsatisfiedLinkError: dlopen failed: "xxx.so" has invalid e_shstrndx
首次进入地图还会弹出”xx.xo has invalid ELF header”的警告
问题原因
高版本模拟器(Android 8.0)对SO HEADER部分进行检查,这与高德对模拟器SO的压缩方案有冲突;(真机没有问题)
如果去除压缩x86平台包体积会增加到11M,为了满足大部分用户对包体积的要求,官网中为已压缩版本;
解决方案
(1)使用低版本的模拟器,8.0以下,gradle中targetSdkVersion修改为26以下;
(2)如果您对模拟器有强烈需求,请通过附件获取未压缩版本的模拟器so;
如果使用导航请替换以下so文件