В Google Map не работает автозаполнение - PullRequest
0 голосов
/ 27 ноября 2018

Я хотел реализовать AutocompleteFragment (Google Места), но когда я щелкаю, чтобы искать в фрагменте, фрагмент исчезает (падает).Google Maps и Places API работают, и в консоли я вижу ошибку:

place.PlacesService.AutocompleteWidget: 100

Я не могу найти, что это может означать.Я пытался использовать советы в этом и этом ответах, но это не сработало.

Мои реализации build.gradle:

implementation 'com.google.android.gms:play-services:+'
implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-places:+'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.android.gms:play-services-places:16.0.0'

Разрешения и метаданные в Android.manifest:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="it.mappe.permission.MAPS_RECEIVE" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>

В макете активности у меня есть этот XML:

SupportMapFragment mapFragment;
SupportPlaceAutocompleteFragment autocompleteFragment;
GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
}
@Override
protected void onStart() {
    super.onStart();
    createMapView();
}

private void createMapView() {
    getSupportFragmentManager().executePendingTransactions();
    mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapView);
    mapFragment.getMapAsync(this);

    autocompleteFragment = (SupportPlaceAutocompleteFragment) getSupportFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
            .setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
            .build();

    autocompleteFragment.setFilter(typeFilter);
    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {

        @Override
        public void onPlaceSelected(com.google.android.gms.location.places.Place place) {
            Log.i(TAG, "Place: " + place.getName());
        }

        @Override
        public void onError(Status status) {
            Log.e(TAG, "An error occurred: " + status + ", status code " + status.getStatusCode());
        }
    });
}

И когда я нажимаю на searchview во фрагменте, я вижу это в LogCat:

Произошла ошибка: Status {statusCode = ERROR, resolution = null}, код состояния 13

И эта страница дают мне прекрасное объяснение«код состояния 13»:

Операция завершилась неудачно без более подробной информации.

Спасибо за любые советы

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я получил ту же ошибку "Ошибка 13", и я задал этот вопрос в stackoverflow.

Хотя я не получил никакого ответа, но получил комментарий от человека, который работает на картах Google.Он сказал, что это ошибка со стороны googles
Вот ссылка на мой вопрос

Я искал ответы, попробуйте их:

библиотека ключей api должна состоять из мест apiдля android, web и карт должна быть поддержка multidex

0 голосов
/ 27 ноября 2018

получить ключ API Google от Консоль Google и добавить метаданные

Это будет выглядеть примерно так: AIsddsfdsf-FAdsdsf6755fgfgdd3w

Официальное руководство Как создать ключ API карты

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="there_is_my_api_key"/>
...