繁体   English   中英

Android Google Maps未显示实际地图

[英]Android google maps not showing the actual map

一些上下文:

自从几周前以来,我一直在使用适用于Android的Google Maps api做一些事情,一周前,我不得不重置PC,然后从我的私有存储库中克隆了Android项目。 现在,该项目的google maps部分将无法工作,当我启动map活动时,它会按预期显示布局,但未渲染地图,我只在左下角看到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" /> 

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

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

  • 我已经尝试从Android Studio中执行以下操作:生成APK,生成已签名的APK,然后将这些apk上传到我的手机(无用)。

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

  • 我没有碰过debug.keystore,因为我不知道它在哪里。

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

 <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" /> 

这是我的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凭据使用了它,但是当我运行命令提示符“ keytool -v -list -keystore mykeystore.keystore”(与我用来签名apk的相同)时,我收到了另一个不同的SHA1

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

我在开发人员控制台的相同程序包下的相同API KEY中使用了这两个函数。

令我感到困扰的另一件事是google_maps_api.xml在名称的右侧说(调试),这是否会有所影响?

  • 检查设备的日期和时间设置是否与您当前的时区相对应(不幸的是,日志输出不会返回很多建设性的信息,导致您考虑日期和时间)
  • 检查您是否已在API控制台中启用了正确的服务(启用Google Maps API Android V2而非Google Maps API V2,如果您对此步骤做错了操作,日志将返回Authentication Failed)。
  • 检查您是否使用了正确的密钥库来获取API秘密(日志将提示您“身份验证失败”
  • 检查是否包含正确的库文件

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

用于调试的API_KEY已存储为app \\ src \\ debug \\ res \\ values \\ google_maps_api.xml

把API_KEY要释放到google_maps_api.xml通过文件夹的应用程序的\\ src \\发布\\ RES文件中提到这个答案\\值适用于我..

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM