无法激活发行版本的Google Maps API v2

时间:2018-10-24 11:46:02

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

我无法在发行版中激活我的Google Maps v2 Android API:(

我的调试版本正常工作。我在封闭的测试通道中发布了我的应用程序(Android应用程序捆绑包),但在logcat中出现以下错误:

  

2018-10-24 13:21:50.255 6704-6769 /? E / Google Maps Android API:授权失败。有关如何正确设置地图的信息,请参见https://developers.google.com/maps/documentation/android-api/start

     

2018-10-24 13:21:50.257 6704-6769 /? E / Google Maps Android API:在Google Developer Console(https://console.developers.google.com

     

确保已启用“ Google Maps Android API v2”。

     

确保存在以下Android密钥:

     

API密钥:YOUR_KEY_HERE

     

Android应用程序(cert_fingerprint>; package_name>):74:4E:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:05 :2A; com.soft.test

这是我的“ ... / main / res / values / google_maps_api.xml”:

<resources>

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

</resources>

我的API控制台中有以下指纹:

Google API Console

我的build.gradle(Module:app):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.soft.test"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "@string/version"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled true
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.google.android.gms:play-services-maps:16.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'


    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.android.support:design:27.1.1'
}

我正在为这个问题工作几天。搜索网络,阅读stackoverflow答案,将测试版本上传到Google Play,但找不到任何解决方案:(

我有三个主要问题:

  1. 我的google_maps_api.xml中有API KEY,但是logcat错误仍然显示“ API Key:YOUR_KEY_HERE”,看起来像应用程序看不到API_KEY。为什么? (我认为这可以解决我的问题)

  2. 在logcat错误和“ keytool -list -v -keystore mystore.keystore”命令输出中,我得到了两个不同的指纹?这怎么可能呢? (我确定我在真正的密钥库上运行命令)

  3. 主要问题:我或Google怎么了?如何激活发行版本的MAP API?

1 个答案:

答案 0 :(得分:0)

我找到了错误和解决方法。

首先,我将API KEY硬编码为清单文件,并且它起作用了。然后我意识到,发行目录中没有google_maps_api.xml文件。

我添加了google_maps_api.xml文件以手动释放目录。不幸的是,仍然无法在Android视图中看到google_maps_api.xml文件的发布版本:

screenshot

但是,Android Studio生成了带有发行目录文件的App Bundle。我在Google Play中发布了可以正常运行的版本:PETAROUND。 :)

我认为Android Studio中有一个错误。我正在macOS 10.13.6 HighSierra上使用Android Studio Build:3.2.1。现在,我正在寻找并搜索此错误。如果找到有关错误的答案,我将在这里写下。