地图视图以灰色瓷砖显示地图未在android google api 2.3.3中显示

地图视图以灰色瓷砖显示地图未在android google api 2.3.3中显示,android,android-mapview,Android,Android Mapview,您好,我正在开发一个地图视图,我试图按照这种方式 我通过点击按钮创建了一个“意图”。添加了权限和库 . 我创建了一个覆盖项。 .My Emulator的目标是GoogleApi 2.3.3。我的MapView密钥被拒绝,并被分配到MapView.xml中 我看到了底部有谷歌标志的地图和地图视图控制器:这是我的代码 MapView.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=

您好,我正在开发一个地图视图,我试图按照这种方式 我通过点击按钮创建了一个“意图”。添加了权限和库 . 我创建了一个覆盖项。 .My Emulator的目标是GoogleApi 2.3.3。我的MapView密钥被拒绝,并被分配到MapView.xml中

我看到了底部有谷歌标志的地图和地图视图控制器:这是我的代码

MapView.xml

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <view android:id="@+id/mv"
    class="com.google.android.maps.MapView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" 
    android:clickable="true"
    android:apiKey="046S_m5BQ43JIRtKiXQfldWwo2ddlU6dL6ca9SQ"
    />
    </LinearLayout>
这是我的MyOverlays.java

 public class MyOverlays extends ItemizedOverlay<OverlayItem> {

        private static int maxNum = 5;
        private OverlayItem overlays[] = new OverlayItem[maxNum];
        private int index = 0;
        private boolean full = false;
        private Context context;
        private OverlayItem previousoverlay;

        public MyOverlays(Context context, Drawable defaultMarker) {
            super(boundCenterBottom(defaultMarker));
            this.context = context;
        }

        @Override
        protected OverlayItem createItem(int i) {
            return overlays[i];
        }

        @Override
        public int size() {
            if (full) {
                return overlays.length;
            } else {
                return index;
            }

        }

        public void addOverlay(OverlayItem overlay) {
            if (previousoverlay != null) {
                if (index < maxNum) {
                    overlays[index] = previousoverlay;
                } else {
                    index = 0;
                    full = true;
                    overlays[index] = previousoverlay;
                }
                index++;
                populate();
            }
            this.previousoverlay = overlay;
        }

        protected boolean onTap(int index) {
            OverlayItem overlayItem = overlays[index];
            Builder builder = new AlertDialog.Builder(context);
            builder.setMessage("This will end the activity");
            builder.setCancelable(true);
            builder.setPositiveButton("I agree", new OkOnClickListener());
            builder.setNegativeButton("No, no", new CancelOnClickListener());
            AlertDialog dialog = builder.create();
            dialog.show();
            return true;
        };

        private final class CancelOnClickListener implements
                DialogInterface.OnClickListener {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(context, "You clicked yes", Toast.LENGTH_LONG)
                        .show();
            }
        }

        private final class OkOnClickListener implements
                DialogInterface.OnClickListener {
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(context, "You clicked no", Toast.LENGTH_LONG).show();
            }
        }
    }
公共类MyOverlays扩展了ItemizeOverlay{
私有静态int maxNum=5;
私有OverlayItem overlays[]=新OverlayItem[maxNum];
私有整数指数=0;
私有布尔满=假;
私人语境;
私有覆盖项先前覆盖;
公共MyOverlays(上下文、可绘制的defaultMarker){
super(boundCenterBottom(defaultMarker));
this.context=上下文;
}
@凌驾
受保护的OverlayItem createItem(int i){
返回覆盖层[i];
}
@凌驾
公共整数大小(){
如果(完整){
返回覆盖层长度;
}否则{
收益指数;
}
}
公共void addOverlay(OverlayItem overlay){
if(previousoverlay!=null){
如果(索引
我的Android.manifest

<uses-sdk android:minSdkVersion="10" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

     <application
        android:icon="@drawable/drive_eat_icon"
        android:label="@string/app_name" android:allowClearUserData="true"        android:debuggable="true">
        <activity
            android:name=".MainScreen"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DriveatmapActivity"></activity>
        <activity android:name=".MapviewActivity"></activity>
        <activity android:name=".FoodjointListActivity"></activity>
        <activity android:name=".SubmitFormActivity"></activity>    
        <activity android:name=".MyOverlays"/>
            <uses-library android:required="true" android:name="com.google.android.maps"></uses-library>
</application>

请建议怎么做。如果你需要任何代码,请告诉我。 我看到的是只有灰色瓷砖的谷歌地图。

//而不是你的视图

//用这个

<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="046S_m5BQ43JIRtKiXQfldWwo2ddlU6dL6ca9SQ" />

使用它获取有效的API密钥--

这就是确切的路径--

cmd提示符获取GoogleMap API键的MD5 fingureprint的总路径----

如果您使用的是eclipse,那么--

MD5 fingurePrint将如下所示--

当您在获取API密钥之后获取fingurePrint编号时,请使用此链接---

然后你将得到你的系统的API密钥,可以很容易地得到地图而不是网格

在MapView.xml中使用此键---



我的电脑中有互联网和Gps设置,我也做了同样的设置。并且得到了这个结果你能得到有效的API密钥吗?..在你的活动中修改它--受保护的布尔值isRouteDisplayed(){return false;}我通过提供我的MD5指纹从google map API注册中得到了它,我从eclipse[keytool]生成了这个指纹作为一个插件选中这个链接--,希望它能帮助你..尝试了这个没有工作,所以我的api密钥是有效的。你建议根目录布局吗?
<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="046S_m5BQ43JIRtKiXQfldWwo2ddlU6dL6ca9SQ" />
keytool -list -keystore "C:\Users\XYZ\.android\debug.keystore"
D:\eclipse\jre\bin>keytool -list -keystore "C:\Users\XYZ\.android\debug.keystore"
 3E:F4:D6:E6:93:4D:BB:B8:62:3A:D6:0F:E0:FC:4C:65
 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

  <com.google.android.maps.MapView
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:clickable="true"
      android:enabled="true"
      android:apiKey="046S_m5BQ43JIRtKiXQfldWwo2ddlU6dL6ca9SQ" />

</LinearLayout>