Android谷歌地图未显示实际地图

时间:2015-11-23 09:01:30

标签: java android google-maps android-fragments google-maps-android-api-2

一点背景:

几个星期前,我用Android谷歌地图api做了一些事情,一周前我不得不重置我的电脑,之后我从我的私人存储库克隆了我的Android项目。现在,谷歌地图部分项目无法正常工作,当我开始地图活动时,它会按预期显示布局,但地图未呈现,我只看到左下角的Google徽标。

我检查过以下内容:

  • 我有一个AIzaSyA *****************
  • 形式的开发者控制台API KEY
  • API KEY凭据用于包co.com.something.activities和由自动生成的google_maps_api.xml提供的SHA1证书

    您还可以使用以下行将您的凭据添加到现有密钥: D6:76:DA:B5:##:##:##:##:##:##:##:##:##:##:##:##:##; co.com .something.activities

  • 我有我的清单

    
    
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            <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" />
    
            <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" />
            <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    &#13;
    &#13;
    &#13;

  • google_maps_api.xml上的API KEY与控制台API KEY相同

  • onMapReady(GoogleMap googleMap)方法在我的活动中被调用,我设置了一些LatLng点并移动了相机(仍然不会显示地图)

  • 我已经尝试了Android Studio中的以下操作:构建APK,生成签名APK,然后将这些apks上传到我的手机(无效)。

  • 我在应用程序的项目文件夹下有我要发布的密钥库,我删除了它并创建了它并使用新的SHA1重新创建了API KEY

  • 我还没有触及debug.keystore,因为我不知道它位于何处。

  • 我将地图加载到活动的片段中(工作正常)

&#13;
&#13;
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
        android:layout_height="fill_parent" android:id="@+id/map"
        tools:context="co.com.wayfit.activities.RouteActivity"
        android:name="com.google.android.gms.maps.SupportMapFragment" />
&#13;
&#13;
&#13;

这是我的gradle文件

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
signingConfigs {
    release {
        storeFile file('C:/ProjectDir/app/wayfit.keystore')
        storePassword "wayfit"
        keyAlias "wayfit"
        keyPassword "wayfit"
    }
}
defaultConfig {
    applicationId "co.com.wayfit"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    signingConfig signingConfigs.release
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
productFlavors {
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'
    compile 'com.google.android.gms:play-services-identity:8.3.0'
    compile 'com.google.android.gms:play-services-gcm:8.3.0'
}

编辑:

我认为我的问题是由API KEY引起的。我尝试删除活动并创建一个新的地图活动,android studio为我生成了一个名为google_maps_api.xml的文件,它说 您还可以使用以下行将您的凭据添加到现有密钥:     D6:76:DA:B5:##:##:##:##:##:##:##:##:##:##:##:##:##; co.com .something.activities

所以我想把它用于我的api凭证,但是当我运行命令提示符&#34; keytool -v -list -keystore mykeystore.keystore&#34;这与我用来签署apk相同,我接收另一个不同的SHA1

D8:B2:29:2C:C5:##:##:##:##:##:##:##:##

我在开发人员控制台上的相同软件包下使用了相同的API KEY。

让我感到困惑的另一件事是google_maps_api.xml在名称的右侧说(调试),这是否会影响某些内容?

2 个答案:

答案 0 :(得分:1)

  • 检查您的设备的日期和时间。时间设置对应于您当前的时区(不幸的是,日志输出不会返回太多建设性信息,以引导您考虑日期和时间)
  • 检查您是否在API控制台中启用了正确的服务(启用Google Maps API Android V2而非Google Maps API V2,如果您对此步骤执行了错误,日志将返回身份验证失败)
  • 检查您是否使用了正确的密钥库来获取API密码(日志会给您一个提示,说明身份验证失败
  • 检查您是否包含了正确的库文件

有关空白谷歌地图的大量其他问题可以找到更多信息: https://stackoverflow.com/a/15636254/1099716

答案 1 :(得分:0)

调试的API_KEY存储在app \ src \ debug \ res \ values \ google_maps_api.xml

通过文件夹app \ src \ release \ res \ values将发布的API_KEY放到google_maps_api.xml文件中对我来说非常有用,如上所述:

https://stackoverflow.com/a/42123330/2796625