我已经尝试了大约一周的时间来解决此问题。我有谷歌地图的工作在调试完全正常,但无论怎样,当我打包APK我得到以下Google Maps API v2无法使用发布密钥
05-21 21:00:21.338 31534-31613/? E/Google Maps Android API﹕ Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
我在两个不同的运行以下命令
keytool -list -v -keystore ~/Documents/keys/phillybikeshare.jks -alias "pbs"
这个错误怎么办密钥库,采取了SHA1指纹,看起来像
F9:DB:33:A2:05:02:80:5A:21:9A:19:E6:8A:E4:C4:XX:XX:XX:XX:XX
,并在谷歌开发者控制台的SHA1取得API密钥。我甚至双重检查,以确保我有一个变量在main/res/values/google_maps_api.xml
和debug/res/values/google_maps_api.xml
但仍然没有。
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.peterchappy.phillybikeshare" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name="com.peterchappy.phillybikeshare.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.peterchappy.phillybikeshare.MAPS_RECEIVE"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" >
</uses-feature>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".activities.MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".services.AlarmService"
android:exported="false" >
</service>
</application>
的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.peterchappy.phillybikeshare"
minSdkVersion 17
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.mcxiaoke.volley:library:1.+'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:cardview-v7:21.0.+'
}
我不知道什么可能是错误的。任何帮助将不胜感激。
您确定您已经为您的发布API密钥启用Google地图吗? –
我和我一样积极。我有两个SHA1密钥已注册。 –
另一件要检查的事情是开发人员控制台中应用的软件包名称与应用的软件包名称相匹配。 –