【问题标题】:The Map Doesn't Show, only show Grid, and Show Grey Background地图不显示,只显示网格,显示灰色背景
【发布时间】:2013-12-03 02:25:57
【问题描述】:

我只是想问一下我想在 android 上制作 googlemaps 应用程序.. 我已遵循许多网站的说明(包括来自谷歌开发者的说明),但这些应用程序在我的真实设备(Android 4.2.2 上)上无法运行,谁能帮助我?请.. 代码如下所示。

xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
 <fragment 
     xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:name="com.google.android.gms.maps.MapFragment"/>

AndroidManifest 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wilis.googlemaps"
android:versionCode="1"
android:versionName="1.0" >


<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission 
android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
 Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >    
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
    <activity
        android:name="com.wilis.googlemaps.GoogleMaps"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAOGow0GmvoOi87cCFQffmRVz4SNmEWnP0"/>

</application>    
</manifest>

还有主要活动文件:

package com.wilis.googlemaps;

import android.os.Bundle;
import android.app.Activity;

public class GoogleMaps extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

}

}

【问题讨论】:

标签: android google-maps


【解决方案1】:

检查一下:

Google Maps V2Google Maps V2Example

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    如果 API_KEY 不正确,则仅显示灰色背景。可能你混淆了调试和生产密钥。

    【讨论】:

    • 我想是这样,但是,如何获得正确的 API_KEY?我已经有 SHA1 指纹 A8:C5:CD:20:1B:F9:C9:DF:7F:A8:15:B2:52:7B:04:69:EE:CD:4B:3F;com.example.googlemap ,我把这段代码放到google api控制台中,但它仍然无法正常工作..
    • @ndr_sd 您的调试密钥库所在的位置?
    • 在 C:\Users\Andrew\.android\debug 密钥库中
    【解决方案3】:

    在你的 xml 中使用 MapView

     <com.google.android.gms.maps.MapView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"        
            android:apiKey="AIzaSyCpC852JtX3dHjqGP6UnJBygJUdO0w_pBY"
            android:clickable="true"
            android:id="@+id/mMapView"
            android:enabled="true" />
    

    并为 GoogleActivity 使用以下代码:

    public class GoogleActivity extends Activity {
        private GoogleMap mGglMpInstance;
        private MapView mMapView;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                try {
                    MapsInitializer.initialize(MainActivity.this);
                } catch (GooglePlayServicesNotAvailableException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } 
                initailizeLayout(savedInstanceState);
            }
    
            private void initailizeLayout(Bundle savedInstanceState){
                mMapView=(MapView)findViewById(R.id.mMapView);
                mMapView.onCreate(savedInstanceState);
                mGglMpInstance=mMapView.getMap();
        }
    

    【讨论】:

      【解决方案4】:

      见这里,只需在清单文件中使用您的密钥更改 api 密钥,然后按照以下步骤操作: 并确保使用 android 清单文件中提到的包名称生成 api 密钥,并且您的 google_play_services_lib 项目应仅存在于您项目的工作空间中。

      清单文件:

          <uses-sdk
              android:minSdkVersion="8"
              android:targetSdkVersion="18" />
      
          <uses-feature
              android:glEsVersion="0x00020000"
              android:required="true" />
      
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
          <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:allowBackup="true"
              android:icon="@drawable/ic_launcher"
              android:label="@string/app_name"
              android:theme="@style/AppTheme" >
              <activity
                  android:name="com.geeklabs.map.MainActivity"
                  android:label="@string/app_name" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
      
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      
              <meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="replace with your API key"/>
      
          </application>
      
      </manifest>
      

      MainActivity.java:

          package com.geeklabs.map;
      
      import android.os.Bundle;
      import android.app.Activity;
      import android.view.Menu;
      
      public class MainActivity extends Activity {
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
          }
      
      }
      

      activity_main.xml:

          <?xml version="1.0" encoding="utf-8"?>
          <fragment xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/map"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:name="com.google.android.gms.maps.MapFragment"/>
      

      收到后告诉我。

      并确保以下步骤正确与否:

      步骤: * 确保设备有 Google Play services APK * 安装 Google Play 服务版本。 2个以上

      • https://code.google.com/apis/console/创建项目
      • 启用“Google Maps Android API v2”
      • 在 API 控制台注册项目中的 SHA1(现在,您需要 WRITE SHA1;your.app.package.name)并获取 API KEY
      • 将目录 ANDROID_SDK_DIR/extras/google/google_play_services/libproject/google-play-services_lib 复制到项目的根目录
      • 将下一行添加到 YOUR_PROJECT/project.properties

      android.library.reference.1=google-play-services_lib

      • 将下一行添加到 YOUR_PROJECT/proguard-project.txt

      -keep class * extends java.util.ListResourceBundle {

      protected Object[][] getContents();

      }

      好的,现在您可以使用适用于 Android 的 Google Map APIs V2 创建您自己的 Google Map 应用了。

      如果您创建应用的最低 SDK = 8,请使用 android 支持库 v4 + SupportMapFragment 而不是 MapFragment。

      【讨论】:

        【解决方案5】:

        尝试在 google api 控制台服务中启用 Googlre map api v2

        您已复制粘贴 api 密钥尝试创建自己的 api 密钥...

        how to create a Google API key

        【讨论】:

        • 您是否添加了 Google Play 库作为对您项目的引用并将该库放在同一工作目录中,从 android-sdk-windows\extras\google\google_play_services\libproject 复制 google play 库\google-play-services_lib
        • 你复制粘贴了 api 密钥,错了,你必须创建自己的密钥,我什至在“如何创建 Google API 密钥”上方提供了如何创建 api 密钥.. .
        • 但我已经在 google apis 控制台中创建了一个 api 密钥,它看起来像这样 A8:C5:CD:20:1B:F9:C9:DF:7F:A8:15:B2: 52:7B:04:69:EE:CD:4B:3F;com.example.googlema‌​p
        • 通过去创建一个API密钥点击你然后看到你有一个项目然后你可以看到创建android密钥然后复制粘贴sha-1;包名称甚至启用服务ogf google map api android v2 然后您创建了一个 API 密钥,复制该 api 密钥并将其粘贴到
        • 你取的包名不对 A8:C5:CD:20:1B:F9:C9:DF:7F:A8:15:B2:52:7B:04:69:EE :CD:4B:3F;com.example.googlema‌​‌​p
        猜你喜欢
        • 1970-01-01
        • 2013-06-02
        • 1970-01-01
        • 1970-01-01
        • 2012-07-13
        • 2010-12-19
        • 2018-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多