【问题标题】:Google Maps on Android shows grey screenAndroid 上的 Google 地图显示灰屏
【发布时间】:2015-04-30 00:20:32
【问题描述】:

我之前遇到过这个问题,谷歌地图显示灰屏,没有地图显示。

我通过在测试环境中安装谷歌服务解决了这个问题,它工作正常。

现在的问题是,对于从 Google Play 安装该应用的用户,已发布的应用显示相同的灰屏(无地图)。

我不能要求人们去下载 Google 服务,以便他们让我的应用正常运行。

我是否可以将这些服务嵌入到我的应用程序或任何其他方式来解决此问题。

谢谢

我在 google_maps_api.xml 中有这个

 <string name="google_maps_key" translatable="false" templateMergeStrategy="preserve">
     AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 </string>

我在清单中也有这个

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

【问题讨论】:

  • 您需要在 google api 面板中注册您的密钥库。您已经注册了一个调试密钥,因此您的 tedt 应用程序可以正常工作。您的发布密钥也需要注册
  • 在这里查看我的答案..它可能会有所帮助stackoverflow.com/questions/29782251/…
  • 对我来说,问题是因为 Android Studio 自动创建了错误的包名,我在开发者控制台中没有注意到它。是 com.myproject.name.activities,但应该是 com.myproject.name。对于遇到灰屏的任何人,请确保输入正确的包名称,您可以在 Android 清单中找到

标签: android google-play google-maps-android-api-2


【解决方案1】:

你有以下吗:

将 Google Play 服务版本添加到您应用的清单中

编辑应用程序的 AndroidManifest.xml 文件,并在元素中添加以下声明。这嵌入了用于编译应用的 Google Play 服务版本。

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

【讨论】:

【解决方案2】:

您必须检查用户是否安装了 Google Play 服务。

private static final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;

private boolean checkPlayServices() {
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    if (resultCode != ConnectionResult.SUCCESS) {
        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
            GooglePlayServicesUtil.getErrorDialog(resultCode, this,
                    PLAY_SERVICES_RESOLUTION_REQUEST).show();
        }
        return false;
    }
    return true;
}

Android 将自动处理问题的解决(如果可以解决)。

【讨论】:

  • PLAY_SERVICES_RESOLUTION_REQUEST 是什么?
  • 私有静态最终 int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
【解决方案3】:

请添加权限:

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

这里的 com.pkg.map 是地图活动所在的包名。

【讨论】:

  • 对于未来的访问者:现在完全不需要此权限。 Google Play Services 3.1.59 的最新更新使其毫无用处。结果,它可以被删除。来源stackoverflow.com/questions/14832911/…
【解决方案4】:

您可能使用了错误的 API 密钥。检查您使用的是 Android 的 API 密钥,而不是 Javascript。基本上,如果你需要密钥,谷歌“get API key android”。这里:https://developers.google.com/maps/documentation/android-api/signup

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多