【发布时间】:2018-06-21 08:24:10
【问题描述】:
我在一个 Activity 中有一个 GoogleMaps 片段,但我根本无法让它工作。每次打开它,屏幕都是空白的,只有“设置我的位置”图标。地图永远不会出现。
当我查看 LogCat 时,我明白了:
01-11 22:53:22.984 29341-30537/package_name
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.
01-11 22:53:23.004 29341-30537/package_name 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.
这是一个与 API 相关联的明确标志,因此我尝试了所有可能的方法来使该密钥工作。这些是我尝试过的选项:
- 创建没有任何限制的 API 代码。没用!
- 创建对我的应用程序有限制的 API 代码。我使用了
google_maps.api.xml文件和 Gradle 签名报告给出的包名称和代码。同样的错误仍然存在。我什至添加了多个对应于调试和发布的 SHA-1 证书(来自 Google Play 证书)。 - 正在搜索要启用的 Google Maps Android API v2。我的控制台中没有这样的东西。唯一的包(Google Maps Android API)已启用。
我浪费了我在互联网上可以找到的所有可能选项。谁能帮我解决这个问题?
我现在能看到的唯一可疑行为是 google_maps.api.xml 文件有一个(调试)扩展名,用灰色写成。我不知道这是否与此错误有关。我是这样看的:google_maps.api.xml (debug) 在 Android Studio 中。
< manifest xmlns: android = "http://schemas.android.com/apk/res/android"
package = "package" >
<
uses - permission android: name = "android.permission.INTERNET" / >
<
uses - permission android: name = "android.permission.CALL_PHONE" / >
<
uses - permission android: name = "android.permission.VIBRATE" / >
<
uses - permission android: name = "android.permission.WRITE_EXTERNAL_STORAGE" / >
<
uses - permission android: name = "android.permission.CAMERA" / >
<
uses - permission android: name = "android.permission.ACCESS_FINE_LOCATION" / >
<
uses - permission android: name = "android.permission.ACCESS_COARSE_LOCATION" / >
<
application
android: allowBackup = "true"
android: icon = "@mipmap/app_logo"
android: label = "@string/app_name"
android: roundIcon = "@mipmap/app_logo"
android: supportsRtl = "true"
android: theme = "@style/AppTheme" >
<
activity android: name = ".MainScreenActivity" >
<
intent - filter >
<
action android: name = "android.intent.action.MAIN" / >
<
category android: name = "android.intent.category.LAUNCHER" / >
<
/intent-filter> <
/activity> <
activity android: name = ".MainMenu" / >
//And some other activities
<
meta - data
android: name = "com.google.android.geo.API_KEY"
android: value = "@string/google_maps_key" / >
<
activity
android: name = ".Menu"
android: theme = "@style/AppTheme" / >
//And some other activities
<
/application>
<
/manifest>
【问题讨论】:
-
“@string/google_maps_key”有效吗?确保您在字符串资源中放置了有效的 google_maps_key。检查是否有任何其他必需的密钥/令牌/秘密也必须添加到字符串资源文件中。
-
谢谢!你的建议有帮助。请参阅下面的答案。
标签: android api google-maps android-studio