当前位置:   article > 正文

Android使用高德地图API接口时报错_com.autonavi.base.ae.gmap.glmapengine.renderamap(g

com.autonavi.base.ae.gmap.glmapengine.renderamap(glmapengine.java:1787)
在代码都无错的情况下,可以用模拟器调用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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/111427
推荐阅读
相关标签
  

闽ICP备14008679号