您好我已根据以下文档构建了一个小型Android应用程序 https://developer.android.com/training/location/retrieve-current.html
我使用了地图活动。它只显示当前位置标记和Toast,它将显示当前的纬度和经度
它在Android模拟器上运行得非常好。但是,当我在我的Android手机上安装了已签名的apk时,地图是不可见的,即使它提供了位置详细信息
在电话上
答案 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