背景
使用了高德SDK创建了一个 project, 下面是运行界面:
点击 "开始定位"按钮, 结果并没有返回定位信息, 而是报错了:
根据错误提示打开这个网址: https://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode, 并且找到错误码 4 的信息, 显示的是网络问题.
解决
我试了一下, 这个时候我的虚拟机的状态是这样的:
- 谷歌内是可以打开百度页面的 (www.baidu.com), 并且可以使用百度搜索一些内容, 比如百度新闻是可以查看的;
- 虚拟机的 wifi 显示 "未连接网络";
- 如果把 wifi 关闭, 数据连接会显示 "无法连接网络" 之类的消息;
一开始以为是虚拟机没法用gps, 于是尝试给虚拟机传一个gpx文件, 结果一直在loading; 后来又觉得可能是虚拟机网络异常 (因为虚拟机 wifi 显示 "未连接网络"), 所以就按照这个文章的步骤操作 ( 传送门: Android Studio 模拟器无法访问网络). 但是在操作到下面这一步的时候, 我好像发现了异常的原因: 之前报错的时候我的虚拟机的 target 就是 Google Play 的, 我又重新 create 了一个 Google API 的, 再运行程序发现就不会有上面的报错信息了.
换成了 Google API 之后的运行结果: