我无法在发行版中激活我的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控制台中有以下指纹:
我的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,但找不到任何解决方案:(
我有三个主要问题:
我的google_maps_api.xml中有API KEY,但是logcat错误仍然显示“ API Key:YOUR_KEY_HERE”,看起来像应用程序看不到API_KEY。为什么? (我认为这可以解决我的问题)
在logcat错误和“ keytool -list -v -keystore mystore.keystore”命令输出中,我得到了两个不同的指纹?这怎么可能呢? (我确定我在真正的密钥库上运行命令)
主要问题:我或Google怎么了?如何激活发行版本的MAP API?
答案 0 :(得分:0)
我找到了错误和解决方法。
首先,我将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。现在,我正在寻找并搜索此错误。如果找到有关错误的答案,我将在这里写下。