技术咨询 最后更新时间: 2021年01月22日
如果您在开发过程中遇到问题,请先查看以下Q&A,看看是否能解决,如果仍无法解决您的问题,请在页面底部申请提交工单。
Web开发常见问题
Q: 我在官网申请了JavaScript API的Key ,使用的时候会报INVALID_USER_DOMAIN的错误
Q: 我在官网申请了JavaScript API的Key ,使用的时候会报INVALID_USER_DOMAIN的错误
请先检查一下您在申请Key的时候,是否设置了域名白名单,如果设定了,建议您在本地调试的时候先将白名单去掉,因为白名单的作用是您的网站上线以后,Key只有在您设定的域名下才有效,别人拿到您的Key也无法正常使用,起到一定的保护作用。
Q:为什么我的浏览器总是定位失败?
浏览器定位插件,封装了标准HTML5定位,并且包含纠偏模块。 浏览器定位基于HTML5定位服务,所以浏览器定位插件仅适用于支持HTML5的浏览器,包括Internet Explorer 9及以上、Firefox、Chrome、Safari 以及 Opera 等。同时,需要浏览器允许定位。Geolocation依赖浏览器本身,浏览器会对定位结果有直接影响,因此会出现定位失败的情况。当浏览器原生定位接口定位失败后,系统会调用IP定位,返回定位点所在城市中心点。此时,定位精度范围返回“null”,详见论坛。
Q: 为什么点标记在地图缩放后,偏离原来的位置?
在地图上添加某个坐标的点标记,如果点标记的图片大小不是API默认图片大小(36*36),需要根据点标记图片大小设置偏移量。偏移量设置方法请参考开发指南。
Android开发常见问题
Q: Android错误码1008、32和7;错误提示invalid_user_scode;返回Key鉴权失败的解决办法
更多Android开发常见问题>>
Q: Android错误码1008、32和7;错误提示invalid_user_scode;返回Key鉴权失败的解决办法
检查SHA1值:
第一步:获取APK当前签名文件的SHA1
a.请参考工单高频问题提供的SHA1值获取方式取得您APK当前使用的SHA1值。
b.也可以向程序中添加以下代码段获取当前APK使用的签明文件SHA1
近期SDK会支持getSHA1()方法,专用于获取APK当前所签签名文件的SHA1值。
publicstatic String sHA1(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
byte[] cert = info.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(cert);
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < publicKey.length; i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i])
.toUpperCase(Locale.US);
if (appendString.length() == 1)
hexString.append("0");
hexString.append(appendString);
}
return hexString.toString();
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
第二步:SHA1对比
在官网控制台里找到您使用的Key,查看其当前填写的SHA1值与第一步获取的SHA1值是否匹配(debug或者release至少有一个与第一步获取的SHA1一致),请注意不能带有空格,SHA1严格校验大小写。
第三步:确保SHA1值一致,如不一致请调整一致。
确保包名一致:
包名应该与AndroidManifest.xml配置文件的package属性内容相一致,如不一致请调整。
Key值填写位置:
a.通过AndroidManifest.xml配置Key
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="key" >//开发者申请的Key
</meta-data>
meta-data标签位置需要在application标签内部。
b.通过setKey(String key);接口设置Key
Q:如何获取注册高德Key使用的SHA1值与包名?
获取应用包名
打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名。
获取SHA1值
首先,绝大多数App在调试时使用的签名文件(debug keystore)和最终App发布使用的签名文件(自定义的keystore)是不同的,不同签名文件的SHA1值也是不同的。下面提供几种获取SHA1值的方式:
通过Eclipse编译器获取SHA1
使用 adt 22 以上版本,可以在 eclipse 中直接查看。
Windows:依次在 eclipse 中打开 Window -> Preferances -> Android -> Build。
Mac:依次在 eclipse 中打开 Eclipse/ADT->Preferances -> Android -> Build。
在弹出的 Build 对话框中 “SHA1 fingerprint” 中的值即为 Android 签名证书的 Sha1 值,如下图所示:
通过Android Studio编译器获取SHA1
第一步、打开Android Studio的Terminal工具
第二步、输入命令:keytool -v -list -keystore keystore文件路径
第三步、输入Keystore密码
使用 Keytool(jdk自带工具)获取SHA1
按照如下步骤进行操作:
1.运行进入控制台。
2.在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。
3.继续在控制台输入命令。
debug.keystore:命令为:keytool -list -v -keystore debug.keystore
自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore
如下所示:
提示输入密钥库密码,编译器提供的debug keystore默认密码是 android,自定义签名文件的密码请自行填写。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 SHA1 值,如下图所示:
说明:keystore 文件为 Android 签名证书文件。
Q: 返回的错误码是什么意思?该怎么办?
请查看错误码表了解所有错误码反应的问题及解决办法。
iOS开发常见问题
Q: 地图显示时,弹出“INVALID_USER_SCODE”,如何解决?
Q: 如何获取iOS Bundle identifier?
Xcode切换到Info下,查看Bundle identifier。黑色和灰色的文字都要复制下来喔。
Q:如何获取注册高德Key使用的SHA1值与包名?
弹出“INVALID_USER_SCODE”表示所申请的Key未绑定正确的安全码,需重新申请Key,方法请参考:https://lbs.amap.com/api/ios-sdk/guide/key/
Q: 返回的错误码是什么意思?该怎么办?
请查看错误码表了解所有错误码反应的问题及解决办法。
云图开发常见问题
Q: 为何使用我的Key请求云图存储服务显示服务不存在(SERVICE_NOT_EXIST)?
Q: 为何向云图里上传一条数据(创建数据)却返回参数缺失或格式非法提示?
Q: 为何使用我的Key请求云图存储服务显示服务不存在(SERVICE_NOT_EXIST)?
请按照以下步骤排查:
1.确认您所申请的密钥(Key)为 Web服务API;
2.请确认在[开放平台官网_控制台]开启Key的云存储服务,操作如下:
Q:为何向云图里上传一条数据(创建数据)却返回参数缺失或格式非法提示?
请先对照云存储API参考手册,检查所有的必填参数是否填写正确,POST格式为x-www-form-urluncoded(表单格式),且其中的data参数是json格式;若上传的数据使用经纬度模式,请检查经纬度的经度,纬度是否传值颠倒,正确格式:104.394729,31.125698。
Q: 云图层和云检索区别是什么?
云图层是图层,我们将你上传的云图数据管理台的数据渲染成图层叠加到地图上,云检索得到的是数据,用户可以对这些数据添加点标记和信息窗体。
室内地图开发常见问题
Q: Android室内地图SDK运行时提示service_no_response,如何处理?
Q: Android室内地图SDK运行时提示NETWORK_ERROR,如何解决?
Q: 高德室内地图开放模式是什么?
高德室内地图开放包括提供室内地图开放产品,提供高德已覆盖室内地图数据,以辅助用户搭建各自的室内地图业务应用。室内地图开放产品移动端、PC端全覆盖,包括移动端室内地图SDK、室内定位SDK,PC端室内地图JS API。
Q: 如何申请使用高德已有的室内地图数据?
高德已覆盖全国包括商场、交通枢纽、医院、展馆等各种类型在类的千余栋室内建筑数据,可通过高德LBS官网在线申请已覆盖的室内数据。点击申请。
Q: Android室内地图SDK运行时提示service_no_response,如何处理?
请使用keytool -v -list -keystore keystore路径确定输出的签名算法名称项必须是SHA1withRSA,如果不是请点击 签名生成方法参考修改。 确保生成sha1的keystore是位于demo根目录下的。如果用户使用别的路径的keystore,请修改demo的build.gradle中的signingConfigs结构。使用者要确保为程序签名的keystore文件、生成sha1的keystore文件、申请Key的sha1码、AndroidManifest.xml中填写的Key 保持一致。
Q: Android室内地图SDK运行时提示NETWORK_ERROR,如何解决?
此错误码代表:网络错误。请确认如下内容:1)网络连接通畅;2)所使用的key有室内地图数据访问权限,如无权限,请点击申请。
Q: iOS支持WIFI室内定位吗?
iOS不支持WIFI室内定位,仅支持蓝牙室内定位,即ibeacon。这主要受限于iOS系统本身,高德iOS室内定位SDK支持蓝牙室内定位。点击查看详细介绍和说明。