【问题标题】:Google Maps not shown / blank谷歌地图未显示/空白
【发布时间】:2015-09-29 10:34:38
【问题描述】:

我找到了关于此的不同主题,但都没有让我得到在我的活动中工作的地图。 我已经按照谷歌提供的关于使用谷歌播放服务地图的指南:

  1. 我已下载并添加到我的库 google play 服务
  2. 我创建了一个基于服务 > 地图活动的新活动 模板
  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>

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

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

【问题讨论】:

  • 在模拟器或实际设备上运行它??如果你在模拟器上运行它,你就看不到地图
  • 您是否将调试 SHA 密钥添加到控制台中的 Api 密钥
  • 用模拟器试过但没有运气。我在哪里得到我的 deub sha 密钥?以及如何在 api 密钥控制台中添加它?那么它会在发布模式下工作吗?

标签: android google-maps android-studio google-play-services


【解决方案1】:

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

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

【讨论】:

  • 我已经使用我的 google_maps_api.xml 中提供的 url 来生成密钥,我认为这是一种简单的方法,但我会再次检查并制作一个新密钥。跨度>
【解决方案2】:

我已经解决了。正如大家所建议的那样,它是 API 密钥,尤其是与该密钥相关的权限。

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

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

感谢任何人的帮助,干杯。

【讨论】:

  • 切换到 MapFragment 显示我的密钥有问题。谢谢!
【解决方案3】:

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

【讨论】:

  • 我已经做了 3 次了,但我总是得到相同的结果。认为是在程序中他们没有授予您添加到清单中的权限,所以我不知道他们是否都可以。
【解决方案4】:

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

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

还要确保您正确生成了 api 密钥。 访问此链接How to generate the api key

【讨论】:

  • 我已经设置好了,我也再次检查了生成api密钥的所有过程,但没有运气。
猜你喜欢
  • 1970-01-01
  • 2016-01-10
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
相关资源
最近更新 更多