android - 谷歌地图不会在发布模式下呈现
问题描述
我一直在调试模式下使用 Google Maps API 并且一直工作正常,直到它处于发布模式。如果我错了,请纠正我,如果我们希望发布我们的应用程序,我们需要一个单独的谷歌地图 API 密钥。
我做了以下事情:
- 创建了新的 API 密钥
- 在我的 GCP 项目中启用结算帐户
为了提取SHA-1
密钥,我导航到project/android/app
可以看到myapp.keystore
并运行命令的位置keytool -list -v -keystore mypp.keystore
。
创建后API_KEY
,我导航到project/android/app/src/main/AndroidManifest.xml
并修改了密钥
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="xxxxxx"/>
还有什么可能丢失的?提前致谢
请注意,这是一个React-Native
项目,没有单独的Release
目录Debug
/路径来配置 APIKEY
解决方案
DEBUG
和RELEASE
版本应该有分开的键。如果您Google Maps Activity
在 Android Studio 中创建,它将创建google_maps_api.xml
具有 API_KEY 值的单独资源文件。正如您所看到的 debug 和 realease 版本不同SHA-1 certificate fingerprint
,这意味着他们的密钥不应该相同。
当然,这意味着manifest中提到的代码应该更改为资源引用。
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key"/>
关键文件应位于以下目录中:
src/debug/res/values/google_maps_api.xml
src/release/res/values/google_maps_api.xml
推荐阅读
- r - R 的 trunc 和 round 不适用于课程日期?
- android - 是否有任何解决方案可以在 View 中观察 MutubleLiveData 的状态,同时通过 ViewModel 中的方法参数对其进行更改
- android - Gradle 使用 ANDROIDX_TEST_ORCHESTRATOR 生成代码覆盖率报告
- java - 更新工作——如何通过在 android 的触摸屏上滑动手指来测试智能手机屏幕?
- memcached - 如何在 Drupal 8 中实现 Memcache?
- java - JavaParser:从 FieldDeclaration 获取字段名称
- android - Google 是否会弃用信标服务?他们的声明模棱两可
- pytorch - SLURM 和 Pytorch 如何一起处理多节点多 GPU 训练
- java - 微调器单击不显示下拉列表
- amazon-web-services - 即使凭证文件存在,AWS SDK 也会显示“配置文件不存在”