我试图让 Google地图在已签名的版本构建中工作。它没有显示任何网格线或图块,它只是空白,我的UI显示在顶部。地图与调试版本完美地加载。
当我使用新手机(4.4.2 vs 4.4.4)时,Android工作室监视器(logcat)也停止工作,因此我无法过滤信息。(当我从控制台删除调试凭据时,只会加载缓存的地图,所以我知道控制台是响应的)
build.gradle(Project)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
gradle.build(APP)
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
signingConfigs {
release {
storeFile new File(project.projectDir, 'mykeystore.keystore')
storePassword 'pass'
keyAlias 'mykey'
keyPassword 'pass'
}
}
defaultConfig {
applicationId "apps.baconcheesegames.com.real_timesocialrunnerfinder"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'com.google.android.gms:play-services-ads:8.1.0'
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-gcm:8.1.0'
}
答案 0 :(得分:1)
这是谷歌地图的关键问题。因此,启用google map api for android。对于refedrence使用this并在清单文件中提及以下元标记
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
答案 1 :(得分:1)
您需要为debug
和release
版本显式设置密钥库。然后,您需要确保google apis期望该密钥库的SHA-1
指纹。
signingConfigs {
release {
storeFile new File(project.projectDir, 'my_key.keystore')
storePassword 'myKeystorePassword'
keyAlias 'myAlias'
keyPassword 'myPassword'
}
}
defaultConfig {
}
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}
答案 2 :(得分:1)
所有答案都是合法的,但我的问题是由于未将API密钥放在发布 google_maps_api.xml 文件中。就在 debug 文件中。
也许您有两个google_maps_api.xml文件,一个位于app / src / debug / res / values文件夹中,另一个位于app / src / release / res / values文件夹中,但只有调试版包含您的API密钥
答案 3 :(得分:0)
调试SHA-1证书指纹将与生产(签名)SHA-1证书指纹不同,因此您需要为同一个包设置调试SHA-1指纹和生产(签名)密钥库SHA-1指纹。
要获取Keystore SHA-1指纹,您可以使用以下命令
keytool -list -v -keystore mystore.keystore
从终端转到密钥库的位置,并将mystore.keystore替换为生成的密钥库。并在google developer Console中为同一个包设置生产(签名)密钥库SHA-1指纹