Android使用高德地图API接口时报错

在代码都无错的情况下,可以用模拟器调用2d地图正常显示,但是却无法调用3d地图,刚开始只看到了这个错误,

 

No implementation found for void com.autonavi.ae.gmap.GLMapEngine.nativeInitParam()

百度查询无果,于是继续看logcat发现了如下错误

/data/app/com.bignerdranch.android.maplocation-uljSxP3cj3emjdp5k3RULg==/lib/x86/libAMapSDK_MAP_v6_3_0.so" has invalid e_shstrndx


2d地图的调用是不需要.so文件的,但是3d地图需要,老师要求可以显示夜间地图,但是2d地图没有,所以我们不能草草了事!要继续研究到底!突然想到高德应该提供一个开发问题的相关解决网站,在网站中找到了原因,

高版本模拟器(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、下载未压缩版本的的模拟器so  http://lbsbbs.amap.com/forum.php?mod=viewthread&tid=42965

            2、下载8.0一下的模拟器,gradleSdkVersion修改为26以下哎。

        3、使用真机调试,记得联网哦

引用:http://lbs.amap.com/faq/top/hot-questions/heiping/?wd=has%20invalid%20e_shstrndx&cateId=&page=&detail=true

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值