Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 上传到Play Store后地图活动为空_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

Android 上传到Play Store后地图活动为空

Android 上传到Play Store后地图活动为空,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,正如标题中提到的,在我上传应用程序后,“地图”活动显示为空白(下方带有谷歌徽标)。我知道这个问题已经被问了很多次,但没有一个解决方案能够解决我的问题 这就是我到目前为止所做的: 按照官方指南生成谷歌地图发布API密钥(带有SHA-1签名),并将其放在Release/res/values/Google\u Maps\u API.xml下 将硬编码的发布API密钥放入AndroidManifest.xml中 清理和重建项目 这是结果: 如果在上传到Play Store之前手动将app-rele

正如标题中提到的,在我上传应用程序后,“地图”活动显示为空白(下方带有谷歌徽标)。我知道这个问题已经被问了很多次,但没有一个解决方案能够解决我的问题

这就是我到目前为止所做的:

  • 按照官方指南生成谷歌地图发布API密钥(带有SHA-1签名),并将其放在Release/res/values/Google\u Maps\u API.xml下
  • 将硬编码的发布API密钥放入AndroidManifest.xml中
  • 清理和重建项目
这是结果:

  • 如果在上传到Play Store之前手动将app-release.apk安装到设备上,那么“地图”活动就可以正常运行
  • 如果app-release.apk之后的app-release.apk上传到Play Store,则“地图”活动显示为空白
解决方案:


这解决了我面临的问题。“地图”活动之前显示为空白的原因是Google Play使用我提供的原始应用程序签名密钥对应用程序进行了重新签名。所以只需复制GoogleSHA-1并将其粘贴到生成GoogleMapAPI密钥的控制台

如果在任何项目中添加了GMap活动,则有两个google\u maps\u api.xml
一个用于调试,一个用于发布

可能您只在Debug中输入了密钥,因为当我们添加Gmap活动时,只有google\u maps\u api.xml打开。所以把你的钥匙也放在释放状态。怎么做?…看

  • 单击Android Studio底部栏上的TODO。
  • 单击TODO的基于范围的选项卡。
  • 现在有两个google_maps_api.XML,打开每个并复制密钥 到没有键的XML(这里是您的键)。 这也发生在我身上

  • 您没有添加权限,请尝试通过包含权限进行检查

    <uses-permission android:name="android.permission.INTERNET" />
    
    
    
    它必须是API密钥访问工具。也许你需要把某个IP地址列入白名单?我不太确定,因为所有的alpha测试人员似乎都遇到了同样的问题。你能提供更多的指南或链接,让我浏览并尝试一下吗?你看到下面的答案了吗?看起来它解释了如何解决您的问题。@xomena谢谢!这个答案解决了我的问题。它以前不工作的主要原因是Google Play使用我提供的原始应用程序签名密钥对应用程序重新签名。感谢您的回答。正如我在问题中提到的,我已经将release API键放在release/res/values/google_maps_API.xml下,正如您提到的“硬编码”,因此您仍然可以尝试此方法,而不是硬编码。硬编码后,我将其更改回android:value=“@string/google_maps_key”。你可以在我的问题中找到答案。这个答案救了我一命。我已经添加了internet权限,但“地图”活动仍然为空。