Google地图未在Android中显示

时间:2016-06-22 15:27:58

标签: android google-maps google-maps-api-3

我在我的应用程序中处理谷歌地图。现在在android中,地图没有显示,虽然我已经检查了代码,但是一切正常。

我检查过的步骤,它们工作正常: 1)SHA代码很好。 2)我在应用程序中插入的密钥很好。 3)我为我的应用程序启用了地图API。

但是当我访问地图片段时,logcat显示以下内容:

06-22 18:57:47.380 8417-10561/ I/b: Sending API token request.
06-22 18:57:50.300 8417-10561/ E/b: Authentication failed on the server.
06-22 18:57:50.300 8417-10561/ E/Google Maps Android API: Authorization failure.  
  Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.

06-22 18:57:50.300 8417-10561/ E/Google Maps Android API: 
                In the Google Developer Console (https://console.developers.google.com)
                   Ensure that the "Google Maps Android API v2" is enabled.
                   Ensure that the following Android Key exists:
                   API Key: AIz------------------------------------S
          Android Application (<cert_fingerprint>;<package_name>): SHA-1FingerPrint;PackageName

现在我已经通过互联网搜索了这个问题,但我还没有找到解决方案。我已经完成了以下问题,但没有结果。

Google Maps V2 not working in production with correct key

Google Maps Android API v2 Authorization failure

这是我的地图活动代码:

private void setupWebView(View parentView) {
    loading = (ProgressBar) parentView.findViewById(R.id.loading);
    loading.setVisibility(View.GONE);
    if (googleMap == null) {
        googleMap = ((MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.mapf)).getMap();

    }
    setupMarkers(searchCenters.getText().toString());
}

private void setupMarkers(String searchFor) {
    googleMap.clear();
    if (searchFor == null || searchFor == "") {
        for (Center center : centers) {
            markers.add(
                    googleMap
                            .addMarker(new MarkerOptions()
                                    .position(new LatLng(center.getAddress().getLatitude(),
                                            center.getAddress().getLongitude()))
                                    .title(center.getName()).visible(true)));

        }
    } else {
        for (Center center : centers) {
            if (center.getName().toLowerCase().contains(searchFor.toLowerCase())) {
                markers.add(
                        googleMap.addMarker(new MarkerOptions()
                                .position(new LatLng(center.getAddress().getLatitude(),
                                        center.getAddress().getLongitude()))
                                .title(center.getName()).visible(true)));
            } else {
                markers.add(
                        googleMap.addMarker(new MarkerOptions()
                                .position(new LatLng(center.getAddress().getLatitude(),
                                        center.getAddress().getLongitude()))
                                .title(center.getName()).visible(false)));
            }
        }
    }

结果是这样的:

enter image description here

任何人都可以帮我解决这个问题。我知道这里有很多次问过,但我仍然找不到答案。

2 个答案:

答案 0 :(得分:1)

根据您提供的错误日志,Google Maps Android API: Authorization failure.确保在Google API控制台中激活Google Maps Android API v2服务,在生成API密钥时使用正确的包名称,确保您使用的是正确的密钥库生成SHA1的文件,并按照日志中的建议,确保启用Google Maps Android API v2,确保存在以下Android密钥。

我可以建议的是阅读Maps Android API的官方Google文档,该指南可以快速将地图添加到Android应用中。这些文档还讨论了如何获取Maps API Key并包含示例代码。

以下是一个示例代码,其中包含一些说明Google Maps Android API使用的示例:https://github.com/googlemaps/android-samples

答案 1 :(得分:1)

Android Studio有两条路径

app/src/debug/res/values/google_maps_api.xml
app/src/release/res/values/google_maps_api.xml

确保两者具有相同的google_maps_key