Android Kotlin Geocoder 获取位置坐标/地址时在 Android 上 DEADLINE_EXCEEDED

Cha*_*har 11 android geocoder android-tiramisu

lat lng在我的 Android 应用程序中,我尝试使用地理编码器使用getFromLocation方法获取地址,GeocodeListener 但有时应用程序会崩溃

崩溃日志

Caused by java.io.IOException: egma: DEADLINE_EXCEEDED: Deadline CallOptions will be exceeded in 4.959774531s. 
       at android.location.Geocoder$GeocodeListener.getResults(Geocoder.java:246)
       at android.location.Geocoder.getFromLocation(Geocoder.java:134)
Run Code Online (Sandbox Code Playgroud)

代码

geocoder.getFromLocation(
  latLng.latitude,
  latLng.longitude,
  1,
  object : Geocoder.GeocodeListener {
            override fun onGeocode(addresses: MutableList<Address>) {
              val addressLine = addresses.first().getAddressLine(0)
                   onAddressResult(addressLine, null) // callback
             }

             override fun onError(errorMessage: String?) {
               super.onError(errorMessage)
                  onAddressResult(null, errorMessage)
             }
  },
)
Run Code Online (Sandbox Code Playgroud)

坠机原因是什么。我怎样才能避免它?

小智 -1

您是否尝试过使用 try/catch 块,它可能有助于捕获和绕过异常