谷歌地图不适用于Android应用程序“无法获取连接工厂客户端”

时间:2014-03-28 09:02:29

标签: android google-maps maps

我完全按照谷歌的MapView教程但它只显示谷歌地图的空白页面。这是我的代码。

我的地图xml:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:apiKey="API_KEY"
/>

其班级:

public class Maps extends MapActivity {

@Override
protected boolean isRouteDisplayed() {
    return false;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);


    MapView mapView = (MapView) findViewById(R.id.mapView);
    mapView.setBuiltInZoomControls(true);

    List<Overlay> mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.logo);
    ItemOverlay itemizedoverlay = new ItemOverlay(drawable, this);

    GeoPoint point = new GeoPoint(19240000,-99120000);
    OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");

    itemizedoverlay.addOverlay(overlayitem);
    mapOverlays.add(itemizedoverlay);

}

}

最后是逐项列表的覆盖类:

public class ItemOverlay extends ItemizedOverlay {

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;

public ItemOverlay(Drawable defaultMarker, Context context) {
    super(boundCenterBottom(defaultMarker));

    mContext = context;
}

public void addOverlay(OverlayItem overlay) {
    mOverlays.add(overlay);
    populate();
}

@Override
protected OverlayItem createItem(int i) {
  return mOverlays.get(i);
}

@Override
public int size() {
    return mOverlays.size();
}

@Override
protected boolean onTap(int index) {
  OverlayItem item = mOverlays.get(index);
  AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
  dialog.setTitle(item.getTitle());
  dialog.setMessage(item.getSnippet());
  dialog.show();
  return true;
}

}

因此,这会产生错误,并且只会显示&#39;徽标&#39;在一个空白的谷歌地图页面。这也是我的明显权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application ... >
    <uses-library android:name="com.google.android.maps"/>
<application />

我错过了什么?可能是什么问题,提前谢谢顺便说一下,我在console.developers.google.com上为浏览器应用程序创建了一个api密钥,该应用程序具有google maps v3的权限。

2 个答案:

答案 0 :(得分:1)

您似乎正在使用明显已弃用的Google Map V1。您现在应切换到Google Map V2以使用地图功能。

按照Documentation

  

注意:截至2012年12月3日,Google Maps Android API版本1已正式弃用。这意味着从2013年3月18日起,您将无法再为此版本请求API密钥。 Google Maps Android API v1不会添加任何新功能。但是,使用v1的应用程序将继续在设备上运行。鼓励现有和新开发人员使用Google Maps Android API v2。

答案 1 :(得分:0)

下载以下网址代码:

http://wptrafficanalyzer.in/blog/?wpdmact=process&did=MTgxLmhvdGxpbms=

这可能会对你有所帮助