无法在发行版中激活 Google Maps API v2
Couldn't activate Google Maps API v2 in release version
我无法在我的发行版中激活我的 Google Maps v2 Android API :(
我的调试版本工作正常。我在封闭的测试频道中发布了我的应用程序 (Android APP BUNDLE),但在 logcat:
中出现以下错误
2018-10-24 13:21:50.255 6704-6769/? 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.
2018-10-24 13:21:50.257 6704-6769/? 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: YOUR_KEY_HERE
Android Application (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 控制台中有以下指纹:
我的build.gradle(模块:应用程序):
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'
}
我在这个问题上工作了好几天。搜索网络,阅读 Whosebug 答案,将测试版本上传到 google 播放但找不到任何解决方案:(
我有三个主要问题:
我的 google_maps_api.xml 中有 API KEY 但 logcat 错误仍然显示 "API Key: YOUR_KEY_HERE" 看起来应用程序无法看到 API_KEY .为什么? (我认为这可能是我问题的主要解决方案)
在logcat错误和"keytool -list -v -keystore mystore.keystore"命令输出中,我得到了两个不同的指纹?这怎么可能? (我确定我 运行 在真正的密钥库上命令)
主要问题:我有什么问题,或者Google?如何为发行版激活 MAP API?
我找到了错误和解决方案。
首先,我将 API KEY 硬编码到清单文件中,它起作用了。然后我意识到,发布目录中没有 google_maps_api.xml 文件。
我添加了 google_maps_api.xml 文件以手动释放目录。不幸的是,在 Android 视图中仍然看不到 google_maps_api.xml 文件的发布版本:
但是,Android Studio 使用发布目录文件生成了 App Bundle。我在 Google Play: PETAROUND 中发布了一个正确工作的版本。 :)
我认为 Android Studio 中存在错误。我在 macOS 10.13.6 HighSierra 上使用 Android Studio Build:3.2.1。现在,我正在寻找并搜索这个错误。如果我找到任何关于错误的答案,我会写在这里。
我无法在我的发行版中激活我的 Google Maps v2 Android API :(
我的调试版本工作正常。我在封闭的测试频道中发布了我的应用程序 (Android APP BUNDLE),但在 logcat:
中出现以下错误2018-10-24 13:21:50.255 6704-6769/? 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.
2018-10-24 13:21:50.257 6704-6769/? 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: YOUR_KEY_HERE
Android Application (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 控制台中有以下指纹:
我的build.gradle(模块:应用程序):
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'
}
我在这个问题上工作了好几天。搜索网络,阅读 Whosebug 答案,将测试版本上传到 google 播放但找不到任何解决方案:(
我有三个主要问题:
我的 google_maps_api.xml 中有 API KEY 但 logcat 错误仍然显示 "API Key: YOUR_KEY_HERE" 看起来应用程序无法看到 API_KEY .为什么? (我认为这可能是我问题的主要解决方案)
在logcat错误和"keytool -list -v -keystore mystore.keystore"命令输出中,我得到了两个不同的指纹?这怎么可能? (我确定我 运行 在真正的密钥库上命令)
主要问题:我有什么问题,或者Google?如何为发行版激活 MAP API?
我找到了错误和解决方案。
首先,我将 API KEY 硬编码到清单文件中,它起作用了。然后我意识到,发布目录中没有 google_maps_api.xml 文件。
我添加了 google_maps_api.xml 文件以手动释放目录。不幸的是,在 Android 视图中仍然看不到 google_maps_api.xml 文件的发布版本:
但是,Android Studio 使用发布目录文件生成了 App Bundle。我在 Google Play: PETAROUND 中发布了一个正确工作的版本。 :)
我认为 Android Studio 中存在错误。我在 macOS 10.13.6 HighSierra 上使用 Android Studio Build:3.2.1。现在,我正在寻找并搜索这个错误。如果我找到任何关于错误的答案,我会写在这里。