【发布时间】:2011-05-15 06:17:58
【问题描述】:
我正在尝试让 Google API 中提供的地图演示正常工作 示例项目。我正在使用 AVD 并尝试使用版本 8、10 和 11 并得到同样的问题。
我已生成自己的调试密钥并添加到项目中。我可以看到 应用程序上的地图启动,并且可以放大等 - 所以我正在获取地图 瓷砖,不错 是 - 我在清单中设置了正确的权限和库 文件(根据样本)。
但是,我无法通过 DDMS 或 Telnet 在地图上设置位置。一世 在 LogCat 中看到以下错误: MapActivity : 无法获取连接工厂客户端
我已经阅读了很多关于这个问题的帖子,但它们似乎总是 由于 API 密钥错误;我没有,因为我是 检索地图图块。
所以我创建了自己的项目来进一步测试,并正在执行 以下代码初始化我的地图:
myLocationOverlay = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocationOverlay);
myLocationOverlay.enableCompass();
myLocationOverlay.enableMyLocation();
Log.i("funkatron: ", "ABOUT TO CALL RUN ON FIRST FIX");
myLocationOverlay.runOnFirstFix(new Runnable() {
public void run() {
String loc = "we have a location, executing AnimateTo().
"+myLocationOverlay.getMyLocation().toString();
Log.i("funkatron:",loc);
mapController.animateTo(myLocationOverlay.getMyLocation());
}
});
我看到了我的第一个日志语句,但没有看到第二个,并且“MapActivity : 无法获取连接工厂客户端”被写入 LogCat 点。
我了解到 SDK v8 模拟器存在问题,所以我有 尝试使用 v10 和 11 - 但仍然没有乐趣。 我还没有在实际设备上尝试过 - 很快就会这样做。
对于这个问题的任何帮助将不胜感激 - 真的 让我感到困惑 ;)
干杯
【问题讨论】:
-
@funaktron:“但是,我无法通过 DDMS 或 Telnet 在地图上设置位置。我在 LogCat 中看到以下错误:MapActivity:无法获取连接工厂客户端”——即错误与您的代码无关。每个人都明白这一点,即使是工作代码。关于您的问题,我从未尝试在具有实际修复的模拟器上使用
MyLocationOverlay,所以我不知道它是否有效。 SDK 8 模拟器实际上是一个不错的模拟器。不要使用 SDK 9/10 模拟器,因为当您尝试设置虚假位置时它们会崩溃。 SDK 11 模拟器应该可以工作,如果它对你来说不是太慢的话。 -
@CommonsWare:感谢您的帖子。经过进一步的测试,同样的代码在设备上运行,即地图位置覆盖工作,所以它显然只是一个模拟器的东西。虽然有趣的是没有人能回答为什么会出现错误;问题仍然存在。
标签: android google-maps mapactivity mylocationoverlay