Причиной этой ошибки может быть неправильный импорт. В сообщении об ошибке говорится, что он ожидает список xxx.com.Address
объектов (посмотрите, где вы определили val address: List<Address>
), в то время как он обнаружил список android.location.Address
(это тип, возвращаемый API геокодера).
Изменив неправильный оператор import
в верхней части файла, вы должны решить эту проблему. Или, что еще лучше, вы можете изменить свой код так, чтобы вы определяли переменную только там, где это необходимо, и позволяли выводу типа Kotlin делать свое «волшебство»:
val address = coder.getFromLocationName(strAddress, 5)
EDIT
В этом конкретном случае, возможно, вы все же захотите явно определить тип, потому что ваш код Kotlin вызывает API, написанный на Java, который не использует @Nullable
/ @NotNull
(или аналогичные аннотации), поэтому Компилятор не может правильно определить недействительность, а тип результата - «тип платформы» (т. е. SomeType!
). Поэтому, если вы знаете, что что-то не должно быть нулевым, вы можете заставить его быть ненулевым, явно введя свою переменную (или наоборот):
val address: List<Address> = coder.getFromLocationName(strAddress, 5)
Подробнее: Типы нулевой безопасности и платформы .