安卓谷歌地图空白
Posted
技术标签:
【中文标题】安卓谷歌地图空白【英文标题】:Android google map blank 【发布时间】:2018-01-14 23:11:49 【问题描述】:1) 创建新项目。
2) 已创建选定的谷歌地图。
3) 调试 google_maps_api.xml 步骤。
https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=:::::::::::::::::::%3Bcom.agtapp.srilanka
已创建谷歌开发者控制台 API 密钥。
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
AIzaSyDRuMUTElAoXoK2y2rXSqtpvdQSZ12z_dk
</string>
4) 发布 google_maps_api.xml 的步骤如下。
developers.google.com/maps/documentation/android/signup 步骤。
keytool -list -keystore your_keystore_name
keytool -list -v -keystore your_keystore_name -alias your_alias_name
SHA1: :0D::74:D3::E1:43::71::62:90: :A1:66:6E:__:5D:75 添加
已创建谷歌开发者控制台 API 密钥。
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">
AIzaSyB3d_usre_Joj_TrgP3aKtdkrSt_tTeqGI
</string>
添加了不同的释放键。
5) AndroidManifest.xml
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<uses-permission android:name="android.permission.INTERNET" />
<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" />
6) Generate signed APK created, Build Type release version created.
7) 在 Play 商店发布的测试版。
8) 谷歌地图屏幕空白。
9) 但是本地运行的应用程序谷歌地图工作正常。
10) 谷歌开发者控制台上正确添加了所有包名。
【问题讨论】:
嗯,我唯一想到的是你可能会错过google-services.json
这对你来说意味着什么吗?啊抱歉,我没有看到您提到发布-您的密钥库与发布不同吗?您需要该构建类型/密钥库的 SHA1/APIkey
例如,debug 通常使用位于~/..android/debug.keystore
的 AndroidDebugKey,但您可能有一个专门为发布设置的密钥库,它不使用调试密钥,因此为该密钥库获取一个 SHA1 ,或者直接运行 Gradle Tasks> android> signingReport 看看!
你应该在 Logcat 中看到一些东西。你也可以分享一下Logcat吗?
你试过this方式释放api密钥吗?如果不只是尝试。
它是 Play Store 应用程序.. 没有显示关于谷歌地图的 logcat..
【参考方案1】:
我假设这可能是由于 SHA 1 指纹不匹配。仔细检查您是否使用相同的密钥库来获取 SHA1 和 apk 版本。
或 让我们检查您的 API 密钥是否有效。 为此添加以下 MAP_API 作为您的发布密钥
AIzaSyDztCvpv3PVBxzWwY7mWqCMnGfDeOiGxwY
在您的 AndroidManifest.xml 中添加以下权限(可选/非必需)
<permission
android:name="your_pakage_name.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
构建您的发行版 apk。并进行测试。
如果地图正在显示,那么我们可以修复您的 API 密钥是问题所在。
所以再获取一次 Sha1 并在您的谷歌开发者控制台中更新。
【讨论】:
【参考方案2】:您正在 cmd 中生成 SHA-1。有时 cmd 返回本地 SHA-1 而不是管理员。所以尝试从 Android 工作室创建 SHA-1。 按照步骤生成 SHA-1:
-
点击
Gradle
(Preview
选项显示的工作室右侧面板)
点击Project name
点击Task
点击android
然后点击signingReport
您的 SHA-1 生成复制此 SHA-1 并粘贴到谷歌控制台。
【讨论】:
这些调试 SHA-1 的步骤,我也检查了这些步骤。 我认为您正在为仅调试应用程序创建密钥。尝试在 google consol 上创建发布【参考方案3】:我认为您仍然在发布版本中使用您的 SHA1 进行 debug.keystore。尝试在您的发布密钥库中获取您的 SHA1。
Windows 终端
keytool -list -v -keystore "PATH OF YOUR RELEASE KEYSTORE" -alias ALIAS -storepass StorePassword -keypass KeyPassword
OSX 终端
keytool -list -v -keystore PATH OF YOUR RELEASE KEYSTORE -alias ALIAS -STORE PASS android -keypass KEYPASS
获取您的 SHA1 并在您的 Google API 控制台上注册。
希望对您有所帮助。 .
【讨论】:
【参考方案4】:问题是我的包名....我在文件夹中创建 MapActivity...所以 android studio 自动将我的包名设置为 com.example.myappname.myfoldename 而不仅仅是 com.example.myappname在 google_api.xml 中也是谷歌控制台的结果。
我强烈建议您尝试此解决方案...生成一个新的 api 密钥并检查您的包名称。
【讨论】:
以上是关于安卓谷歌地图空白的主要内容,如果未能解决你的问题,请参考以下文章