【发布时间】:2016-06-22 15:27:57
【问题描述】:
我正在我的应用程序中处理谷歌地图。现在在 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)));
}
}
}
结果是这样的:
谁能帮我解决这个问题。我知道这个问题已经被问过很多次了,但我仍然找不到答案。
【问题讨论】:
-
我终于找到了解决办法。也许会帮助你stackoverflow.com/questions/16551458/…
-
@mehmet 谢谢你的评论。但是我通过重新输入凭据并删除密钥并再次插入它解决了这个问题,它工作正常。我一直不明白为什么以及如何发生
标签: android google-maps google-maps-api-3