Места автозаполнения API, показывающие исключение - PullRequest
2 голосов
/ 17 января 2020

Я использую API автозаполнения Places, и проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь найти любое место, набирая, он показывает ошибку как ->

enter image description here

Теперь мой код

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val apiKey = getString(R.string.api_key)

        if (!Places.isInitialized()) {
            Places.initialize(
                applicationContext,
                apiKey
            )
        }

        val placesClient =
            Places.createClient(this)
        gmap.setOnClickListener {
            onSearchCalled();
            //startActivity(Intent(this, Gmap::class.java))
        }

    fun onSearchCalled() { // Set the fields to specify which types of place data to return.
        val fields: List<Place.Field> = Arrays.asList(
            Place.Field.ID,
            Place.Field.NAME,
            Place.Field.ADDRESS,
            Place.Field.LAT_LNG,
            Place.Field.ADDRESS_COMPONENTS
        )
        // Start the autocomplete intent.
        val intent = Autocomplete.IntentBuilder(
            AutocompleteActivityMode.FULLSCREEN, fields
        ).build(this)
        startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE)
    }

    override fun onActivityResult(
        requestCode: Int,
        resultCode: Int,
        data: Intent?
    ) {
        super.onActivityResult(requestCode, resultCode, data)

        if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
            if (resultCode == Activity.RESULT_OK) {
                val place =
                    Autocomplete.getPlaceFromIntent(data!!)
                Log.i(
                    "aaaaa",
                    "Place: " + place.name + ", " + place.id
                )
            } else if (resultCode == AutocompleteActivity.RESULT_ERROR) { // TODO: Handle the error.
                val status =
                    Autocomplete.getStatusFromIntent(data!!)
                Log.i("aaaa", status.statusMessage)
            } else if (resultCode == Activity.RESULT_CANCELED) { // The user canceled the operation.
            }
        }
    }

Мне кажется, я следовал всем в соответствии с Документация Google , и я также прикрепляю зависимости манифеста и build.gradle

implementation 'com.google.android.libraries.places:places:2.1.0'
implementation 'com.google.android.gms:play-services-places:17.0.0'

1 Ответ

0 голосов
/ 19 января 2020

Версия Google Play Services SDK Places для Android была устаревшей в январе 2019 года. Итак, прежде всего удалите эту строку из ваших зависимостей build.gradle:

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

Во-вторых, убедитесь, что у вас включен биллинг в вашем проекте и что Places API также включен.

Я только что проверил ваш код (с мой действительный ключ API и удаленная выше зависимость gms) и Place Autocomplete отлично работали на моем конце. Надеюсь, это поможет!

...