【问题标题】:MapView works on emulator but not on phoneMapView 适用于模拟器,但不适用于手机
【发布时间】:2011-03-31 14:31:23
【问题描述】:

我在我的应用程序上正确安装了 google map api,在模拟器上一切正常。但是当我将它转移到我的手机时,它不再工作了(有那个网格的东西),我找不到问题所在。

public class Main extends MapActivity {
    /** Called when the activity is first created. */
    MapView map ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        map = (MapView)findViewById(R.id.mapview);
        map.setSatellite(true);
        List<Overlay> mapOverlays = map.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.pins);
        HelloItem itemizedoverlay = new HelloItem(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);
        map.setBuiltInZoomControls(true);
    }
    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
}

public class HelloItem extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;

public HelloItem(Drawable defaultMarker) {
    super(boundCenterBottom(defaultMarker));
}
public HelloItem(Drawable defaultMarker, Context context) {
    super(boundCenterBottom(defaultMarker));
    mContext = context;
    }

@Override
protected OverlayItem createItem(int i) {
    // TODO Auto-generated method stub
      return mOverlays.get(i);
}
public void addOverlay(OverlayItem overlay) {
    mOverlays.add(overlay);
    populate();
}
@Override
public int size() {
      return mOverlays.size();
}
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;
    }

}

【问题讨论】:

  • 这是一个重复的问题。查看类似问题:stackoverflow.com/questions/1809507/…
  • 我做了这一切,它在 Eclipse 上运行良好,但在我的手机上却不行。
  • 是的,我做了,但我要把我所有的代码都放上去。
  • 这可能是个骗子。当您没有有效的地图 API 密钥时会发生这种情况。很常见的问题。
  • 如果磁贴没有显示,那么 api 密钥是错误的。如果您导出应用程序,则它必须具有发布 api 密钥。

标签: android google-maps grid android-mapview


【解决方案1】:

这是因为您需要使用不同的 .keystore,一个用于模拟器(调试),一个用于设备(​​发布)。当您从 Google 获得 debug.keystore MD5 和 Map API 密钥时,请遵循相同的程序。这次您需要获取 your_own.keystore 的这两个信息,用于在设备上发布。然后在您的地图布局中更改地图 API 密钥,然后地图将显示在您的设备上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多