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

### 高德地图 API 参数无效 (INVALID_PARAMS) 错误解决方案 当遇到 `INVALID_PARAMS` 错误,通常意味着请求中的某些参数不符合高德地图 API 的规定。为了有效解决问题并确保应用程序正常运行,建议按照以下方面逐一排查: #### 1. 检查必填参数 确认所有必需的参数都已提供,并且拼写无误。例如,在发起路径规划请求,起点(`origin`) 和终点 (`destination`) 是必不可少的[^1]。 ```python params = { 'key': 'your_api_key', 'origin': '39.984722,116.309722', # 起点坐标 'destination': '39.994722,116.409722' # 终点坐标 } ``` #### 2. 确认 API Key 正确性 验证使用API key 是否正确配置以及具有访问相应服务的有效权限。如果是在开发环境中测试,则应确保使用的是调试环境下的密钥;如果是生产环境下出现问题,请检查是否已经完成正式审核流程并获得合法授权。 #### 3. 查看官方文档说明 仔细阅读 [高德开放平台](https://lbs.amap.com/api/webservice/guide/) 上关于目标接口的具体描述,特别是对于可选参数的选择及其取值范围的要求。这有助于避免因误解或错误设置而导致不必要的麻烦。 #### 4. 使用最新版本 SDK 或 RESTful 接口 保持所依赖的技术栈处于最新状态,及更新至最新的软件开发工具包(SDK),或是直接调用RESTful风格的服务端点来构建应用逻辑。这样不仅可以享受性能优化带来的好处,还能减少由于过期方法造成的兼容性问题。 #### 5. 日志记录与异常处理机制 增强程序内部的日志打印功能,特别是在网络通信环节捕获详细的响应信息。一旦发现有不合理的返回码或者提示消息,立即保存下来作为后续分析依据。同建立完善的错误恢复策略,比如重试几次后再给出友好提示给用户。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值