我最近推出了一个使用 Google Places 自动完成小部件/API的 Android 应用程序。作为配置的一部分,我将 API 密钥添加到我的 Android 清单文件中:
<application>
...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="MY_KEY_HERE"/>
</application>
此外,在 Google Developers 控制台中,我仅为 Android 设备启用了此 API 密钥,但不限于任何特定 API。我还为我的应用程序输入了正确的包名称和 SHA-1 哈希。现在我有以下问题:
- 当我直接从 Android Studio 将应用程序部署到 Android 手机上时,Google API 都可以正常工作。无论我使用调试模式还是发布模式变体,这都是正确的。
- 当我从相同的确切代码将 APK 发布到 Play 商店,然后安装该应用程序时,除了 Google 自动完成 API 损坏之外,一切正常。当试图访问它时,它会立即关闭。
我确信我部署到 Play 商店的实际上是在本地运行的同一个应用程序,因为我最近还做了一些小的 UI 补丁,这些补丁也出现在商店版本中。我多次验证了正确的密钥是清单文件中出现的内容。
我无法解释这一点。这个问题特别困难,因为一切都在 Android Studio 中运行,所以我不能做一些事情,比如进入调试并尝试捕获异常。
如果您对 Android 和自动完成有一定的专业知识,并且您遇到过类似的问题,那么我欢迎您的回答。