Android:Google地图在模拟器上显示,而不是在手机上显示

时间:2016-11-22 16:26:19

标签: android google-maps android-studio

您好我已根据以下文档构建了一个小型Android应用程序 https://developer.android.com/training/location/retrieve-current.html

我使用了地图活动。它只显示当前位置标记和Toast,它将显示当前的纬度和经度

它在Android模拟器上运行得非常好。但是,当我在我的Android手机上安装了已签名的apk时,地图是不可见的,即使它提供了位置详细信息

在电话上

Android Phone

1 个答案:

答案 0 :(得分:0)

我已按照以下步骤解决问题

我已经在this文档之后创建了一个密钥库文件。现在我必须在API中使用我的密钥库文件的SHA1指纹来限制它(出于发布版本的安全原因,这是强制性的)

1)在Keytool.exe文件位置运行Key Tool Command,如下所示 C:\用户{USERNAME} .AndroidStudio2.2 \ SYSTEM \重启\ JRE \ BIN>

keytool -list -v -keystore {File path for Keystore you have created durning Signing}

这将提示输入密码,一旦输入密码,它将提供SHA1指纹

2)现在转到Google API管理器控制台(https://console.developers.google.com/apis)并选择您的MAP API

在关键限制字段中选择" Android应用程序"

输入您的应用程序的包名称,然后输入您已收到并保存的SHA1指纹

3)由于我们正在创建发布版本,请从发布文件夹(app \ src \ release \ res \ valies \ google_maps_api.xml)输入google_maps_api.xml中的API密钥

4)现在转到你的builld.gradle文件并在android下创建一个新的claConctionConfigs

android {

signingConfigs {
        config {
            keyAlias '{KeyAlias}'
            keyPassword '{password}'
            storeFile file('{Path of keystore file eg: c:/keystore.jks'})
            storePassword '{Store password}'
        }
    }

} 另请参阅调试节点和发布节点中的这些值

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

4)创建签名APK