Google 地图未显示/空白

Google Maps not shown / blank

我找到了关于此的不同主题,但都没有让我在 activity 中使用地图。 我已按照 google 提供的指南使用来自 google 播放服务的地图:

  1. 我已经下载并添加到我的图书馆google播放服务
  2. 我根据服务 > 地图 Activity 创建了一个新的 activity 模板
  3. 我已按照 google_maps_api.xml 中的说明进行操作 获取 api 密钥
  4. 在我的设备上构建并运行应用程序
  5. 意识到我错过了一些东西我已经添加了清单中其他线程建议的权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.labinfo.hotels.core" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="net.labinfo.hotels.core.permission.MAPS_RECEIVE"/>
    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-permission android:name="net.labinfo.hotels.core.permission.C2D_MESSAGE" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:largeHeap="true"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker" />
      
      .....
      
        </activity>

        <activity
            android:name=".components.activities.avis.AvisMappaActivity"
            android:label="@string/title_activity_avis_mappa" >
        </activity>

        <uses-library android:name="com.google.android.maps"/>
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_key" />

    </application>

</manifest>

结果仍然是 activity 仅在角落显示 google 徽标,没有任何错误迹象或来自 logcat 的通知。 我错过了什么吗?我看到在 google 控制台生成 api 密钥期间,它向我显示了一个 SHA 密钥,但我从未使用过它。

希望有人能帮我解决这个问题

当地图显示为空白时,原因可能是您的 API 键有问题。我会检查您是否正确生成了 API 密钥。

当你看不到地图也没有错误时,这意味着 API 键有问题。您需要从 google 获得一个 API 键才能完美地使用 Google 地图。要获得 API 密钥,您需要执行一些步骤,并且在其中一个步骤中,您需要使用 SHA 指纹密钥。但是下面的 link 向您展示了步骤。

https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/obtaining_a_google_maps_api_key/

在清单的应用标签中添加这一行

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

还要确保您正确生成了 api 密钥。 访问这个 link How to generate the api key

我已经解决了。正如你们所有人所建议的那样,它是 API 密钥,特别是与该密钥相关的权限。

我的问题是包名,因为我使用了一个具有不同模块的应用程序,发送到服务器的包名与用于自动创建密钥的包名不同。所以我已经解决了向权限添加具有相同 SHA1 密钥的另一个包名称的问题。

对于所有未来的读者,我希望您注意,在我从 SupportMapFragment 切换到 MapFragment 之前没有显示任何错误,因此我建议这样做以进行调试。

感谢大家的帮助,干杯。