Eclipse Emulator中的Google Maps不会出现

时间:2013-11-21 14:47:56

标签: android eclipse google-maps maps emulation

我能够放大和缩小,我也可以放一个图标标记,但问题是地图没有出现,我只能看到一个网格。应该是什么问题在这里?这是否涉及Google Maps API?

4 个答案:

答案 0 :(得分:1)

我终于在我的模拟器中映射了。我按照这些步骤来实现它。

  1. 创建avd并启动模拟器

  2. 转到Android SDK中的平台工具路径并将这些apk放入其中。

    • com.android.vending-20130716
    • com.google.android.gms-20130716
  3. 通过使用命令提示符(shift +右键单击 - >打开命令窗口)转到平台工具路径,逐个安装这些apk。遵循这些命令
    • adb devices
    • adb install com.android.vending-20130716
    • adb install com.google.android.gms-20130716
  4. 导入项目位置的google-play-services_lib项目,并将其添加到项目中。
  5. 重新启动模拟器并清理项目并通过模拟器运行。
  6. 就是这样。 :) 你可以从以下链接下载apk以上

    Running Google Maps v2 on the Android emulator

    enter image description here

答案 1 :(得分:0)

尝试添加google play服务的元标记..

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

答案 2 :(得分:0)

见这里: Running Google Maps v2 on the Android emulator

仿真器不喜欢谷歌地图的v2。如果地图保持灰色,则在真实设备上进行测试。 如果是这样,您的签名密钥很可能会错误配置。确保您还开发了在Google API控制台上注册的密钥。

答案 3 :(得分:0)

这是我的Android Manifest

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.android.cmumap"
  android:versionCode="1"
  android:versionName="1.0">

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<permission
    android:name="com.android.cmumap.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.android.cmumap.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission   android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">

    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
        android:value="my API key"/>

    </activity>

    <uses-library android:name="com.google.android.maps" />

    <meta-data
        android:name="com.google.android gms.version"
        android:value="@integer/google_play_services_version"/>

</application>

</manifest>

对于主要活动,我有这些

package com.android.cmumap;

import java.util.List;

import android.graphics.drawable.Drawable;
import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class MainActivity extends MapActivity {

private MapView mapView;

private static final int latitudeE6 = 37985339;
private static final int longitudeE6 = 23716735;

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

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

    List mapOverlays = mapView.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
    CustomItemizedOverlay itemizedOverlay = 
         new CustomItemizedOverlay(drawable, this);

    GeoPoint point = new GeoPoint(latitudeE6, longitudeE6);
    OverlayItem overlayitem = 
         new OverlayItem(point, "Hello", "I'm in Athens, Greece!");

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

    MapController mapController = mapView.getController();

    mapController.animateTo(point);
    mapController.setZoom(6);

}

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

}

以及activity_main

的内容
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">

 <com.google.android.maps.MapView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map_view"
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:clickable="true" 
  android:enabled="true" 
  android:apiKey="my API Key" />

</RelativeLayout>