Android API:授权失败谷歌地图(黑屏)

Android API:授权失败谷歌地图(黑屏),android,api,google-maps,android-studio,Android,Api,Google Maps,Android Studio,我有一个谷歌地图片段在一个活动中,我根本无法使它工作。每次我打开它,屏幕都是空白的,只有“设置我的位置”图标。地图从来没有出现过 当我看到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/s

我有一个谷歌地图片段在一个活动中,我根本无法使它工作。每次我打开它,屏幕都是空白的,只有“设置我的位置”图标。地图从来没有出现过

当我看到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\u maps.api.xml
    文件和Gradle签名报告提供的包名和代码。同样的错误依然存在。我甚至添加了多个与调试和发布相对应的SHA-1证书(来自Google Play证书)
  • 搜索谷歌地图Android API v2以启用。我的控制台里没有这样的东西。唯一的软件包(谷歌地图Android API)已启用。
  • 我浪费了在互联网上能找到的所有可能的选择。有人能帮我解决这个问题吗

    我现在看到的唯一可疑行为是,
    google\u maps.api.xml
    文件有一个用灰色编写的(调试)扩展名。我不知道这是否与这个错误有关。我是这样看的:
    google_maps.api.xml(debug)
    在Android Studio中

    
    <
    使用-permission-android:name=“android.permission.INTERNET”/>
    <
    使用-permission-android:name=“android.permission.CALL\u PHONE”/
    <
    使用-permission-android:name=“android.permission.VIBRATE”/>
    <
    使用-permission-android:name=“android.permission.WRITE\u EXTERNAL\u STORAGE”/
    <
    使用-permission-android:name=“android.permission.CAMERA”/>
    <
    使用-permission-android:name=“android.permission.ACCESS\u FINE\u LOCATION”/
    <
    使用-permission-android:name=“android.permission.ACCESS\u\u位置”/>
    <
    应用
    android:allowBackup=“true”
    android:icon=“@mipmap/app_logo”
    android:label=“@string/app\u name”
    android:roundIcon=“@mipmap/app_logo”
    android:supportsRtl=“true”
    android:theme=“@style/AppTheme”>
    <
    活动android:name=“.MainScreenActivity”>
    <
    意图-过滤器>
    <
    action-android:name=“android.intent.action.MAIN”/>
    <
    类别android:name=“android.intent.category.LAUNCHER”/>
    <
    /意向过滤器><
    /活动><
    活动android:name=“.main菜单”/>
    //以及其他一些活动
    <
    元数据
    android:name=“com.google.android.geo.API\u KEY”
    android:value=“@string/google\u maps\u key”/
    <
    活动
    android:name=“.Menu”
    android:theme=“@style/AppTheme”/>
    //以及其他一些活动
    <
    /应用程序>
    <
    
    /manifest>
    我已经通过使用Shn_Android_Dev在评论中给出的建议解决了这个问题(谢谢)。显然它与(调试)文件有关

    我总是将API代码放入
    google\u maps\u API.xml(debug)
    ,清单文件中也给出了
    android:value=“@string/google\u maps\u key”
    。然而,出于某种原因,当我打开应用程序时,它告诉我API不正确。Logcat中显示为错误的错误API实际上位于名为
    strings.xml(debug)
    的文件中。所以我在两个不同的文件中有两个不同的API。请看下图

    正如我所怀疑的那样,秘密也存在于
    strings.xml(debug)
    google\u maps\u api.xml(debug)
    。一直在调试中工作,我在那里设置了API,但是在生成GooglePlay的签名APK时,在后台更改为
    strings.xml(release)
    GoogleMaps.xml(release)
    。但是,只有当构建的变体更改为发布时,才能访问发布部分。否则,需要在release\values文件夹中手动更改API密钥


    问题现在解决了。这些地图现在也显示在Google Play上。我希望这个答案会有所帮助

    “@string/google\u maps\u key”有效吗?确保在字符串资源中放置了有效的google\u maps\u密钥。检查以确保没有任何其他需要添加到字符串资源文件中的密钥/令牌/机密。谢谢!你的建议有帮助。见下面的答案。