【发布时间】:2018-12-12 01:13:25
【问题描述】:
我最近launched an Android app 使用了 Google Places 自动完成小部件/API。作为配置的一部分,我将 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 和自动完成有一定的专业知识,并且遇到过类似的问题,那么我欢迎您的回答。
【问题讨论】:
-
你的项目中添加了 proguard 吗?
-
检查日志/错误日志。如果有任何配置问题,肯定会生成日志。
-
@Sahil 我不确定。 proguard 会影响发布行为吗?
-
@Killer 我不知道在发布模式下构建。我只验证了我猜是在调试模式下。我会尝试您的建议,然后查找错误。感谢您提供帮助。
-
@Killer 我已经在调试模式下从 Android Studio 发布版本到我的测试手机上运行了有问题的活动。但是,令我惊讶的是,Google Places 自动完成小部件实际上正在工作。现在我不知道为什么从应用商店下载的版本失败了。
标签: android api-key googleplacesautocomplete