Google地点选择器启动后立即关闭

时间:2019-05-12 02:00:44

标签: android google-places-api

这是一个困扰了我数周的问题,但仍然无法解决。我朋友的Google地点选择器起作用了,但是我的却没有(即使我们有相同的代码)。

但是一旦尝试20-30次,它就会打开UI,让我可以看到我所在位置附近的地方(但这是非常罕见的情况)。

我已经尽力了。

1)我已启用 Android版Google Places API 并生成了我的API密钥。我还添加了 SHA-1 证书指纹和程序包名称

2)我已经导入了与Google Play服务相关的所有内容,

 implementation 'com.google.android.libraries.places:places-compat:1.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-vector-drawable:26.+'
implementation 'com.google.android.gms:play-services-places:16.0.0'

3)我还在AndroidManifest.xml

应用标签中的元数据中提供了API密钥
 <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_place_api" />
</application>

4)我已经复制了从Place-picker文档站点https://developers.google.com/places/android-sdk/placepicker那里获得的确切代码

 PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
    try {
        startActivityForResult(builder.build(maps.this), PLACE_PICKER_REQUEST);
    } catch (
            GooglePlayServicesRepairableException e) {
        e.printStackTrace();
    } catch (
            GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }
}
@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data){
    if (requestCode == PLACE_PICKER_REQUEST) {
        if (resultCode == RESULT_OK) {
            Place place = PlacePicker.getPlace(data, this);
            String toastMsg = String.format("Place: %s", place.getName());
            Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
        }
    }

5)我甚至为我的项目启用了计费,Google向我收取了Re1。

这对于我的项目非常重要,因此请有人帮助我。我求你了。

编辑:我的logcat也出现了某种错误:

     Place Picker closing due to PLACES_API_ACCESS_NOT_CONFIGURED
 the Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
    2019-05-12 08:07:57.106 2818-3899/? E/Volley: [171] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/placesandroid/v1/placePicker?key=AIzaSyCz-bC6nazJur-gHEgVoZMujFDyVvs2n9M
    2019-05-12 08:07:57.110 2818-20254/? E/Places: Places API for Android does not seem to be enabled for your app. See https://developers.google.com/places/android/signup for more details.
    2019-05-12 08:07:57.112 2818-20254/? E/AsyncOperation: serviceID=65, operation=PlacePickerQuota

EDIT#2 :有什么解决方案吗?请回答我。

2 个答案:

答案 0 :(得分:0)

您似乎尚未启用Place API,下面是完成此步骤的链接。 https://support.google.com/googleapi/answer/6158841?hl=en

如果您对logcat的检查足够好,也许通过选择要查看的日志类型,可以选择Error(错误)而不是冗长,然后您将看到以下错误

E/Places: Places API for Android does not seem to be enabled for your app. See https://developers.google.com/places/android/signup for more details.

答案 1 :(得分:0)

我认为该问题与Android版Places SDK的弃用版本有关。您在gradle中有以下语句

polyak

这是不推荐使用的Google Play版本的Places SDK。为了使用Places SDK的新静态库,gradle应该使用

implementation 'com.google.android.gms:play-services-places:16.0.0'

请仔细检查新库文档中提到的所有步骤,以确保您正确迁移到新版本:

https://developers.google.com/places/android-sdk/start

我希望这会有所帮助!