gpt4 book ai didi

Android Google Place Picker 在 Signed APK 中工作但在 Live 应用程序中不工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:47 25 4
gpt4 key购买 nike

我有一个使用了 Google Place Picker 的应用程序。我面临着一个非常奇怪的问题。当我使用我的应用程序的 keystore 创建已签名的 APK 时,Place Picker 运行良好。我通过 Google PlayStore 上传的同一个 APK。当我打开那个 Place Picker 时,它自动关闭了。我已经在网上和这里阅读了很多评论。但我无法确定为什么它在已签名的 APK 中运行良好,而在 Google PlayStore 上运行的相同 APK 却无法运行。

当我检查 Google PlayStore 的 LIVE 应用程序日志时,出现如下错误:

Volley : [198] BasicNetwork.performRequest: Unexpected response code 403
for https: //www.googleapis.com/placesandroid/v1/search?key=MY_KEY/ ? V / ConnectivityManager : isActiveNetworkMetered() returns: true
/ ? E / AsyncOperation : serviceID = 65, operation = SearchPlaces
OperationException[Status {
statusCode = PLACES_API_INVALID_APP, resolution = null
}]

我已经在我的 Google Developer Console 中检查过我的 key 是否相同。我还检查了我从 KeyStore 文件创建的 SHA。一切都很好(否则如果有任何错误,它也不会在签名 APK 中工作)。

下面是我如何从我的 Activity 中调用 Place Picker

int PLACE_PICKER_REQUEST = 999;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);

这是我的 AndroidManifest.xml 文件,我在其中将我的 API key 放入应用程序标签的元数据中。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example" >
// ALL PERMISSIONS ARE HERE
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/MY_KEY" />
</application>
</manifest>

我删除了自动生成的“release/values/google_maps_api.xml”文件。因为我已经在 string.xml 中提到了我的 API key ,所以我从发布包中删除了整个值包。

谁能告诉我这是怎么回事?

最佳答案

经过几天的投入时间来找到这个问题的解决方案。最后我得到了解决方案。是因为 Google Play App Signing.

With Google Play App Signing: You sign your app with your upload key. Then, Google verifies and removes the upload key signature. Finally, Google re-signs the app with the original app signing key you provided and delivers your app to the user.

因此,当我为“适用于 Android 的 Google Places API”创建 API key 时,我使用我的包名称和签名 APK 的 keystore 的 SHA-1 限制了该 key 。

现在它位于“上传证书”下并且未被使用,因为我必须将我的 App Singing Certificate 的 SHA-1 传递给 Google Developer Console。这样做之后,我的 Google PlayStore 的实时应用程序的 Google PlacePicker 运行良好。 enter image description here

关于Android Google Place Picker 在 Signed APK 中工作但在 Live 应用程序中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307452/

25 4 0
文章推荐: c# SETTINGS 架构
文章推荐: mysql - 合并表记录
文章推荐: c# - 过滤多种文件类型
文章推荐: php - 数据库 | PHP |错误?
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com