为什么android地图空白? (没有瓷砖)

时间:2015-10-21 01:00:57

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

我试图让 Google地图已签名的版本构建中工作。它没有显示任何网格线或图块,它只是空白,我的UI显示在顶部。地图调试版本完美地加载

当我使用新手机(4.4.2 vs 4.4.4)时,Android工作室监视器(logcat)也停止工作,因此我无法过滤信息。

  • 我已重新启动计算机
  • 我已将API密钥添加到AndroidManifest.xml
  • 我尝试创建新的密钥/密钥商店 3次
  • 我每次在Google Developer Console(console.developers.google.com)中更新 SHA1 /包名称
  • 我曾尝试在控制台中重新生成API密钥

(当我从控制台删除调试凭据时,只会加载缓存的地图,所以我知道控制台是响应的)

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'
}

Suspicious message: LocationConsent failed, ULR opt-in status is: false

Blank map when running release build

4 个答案:

答案 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)

您需要为debugrelease版本显式设置密钥库。然后,您需要确保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密钥

https://stackoverflow.com/a/32170277/1363772

答案 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指纹