未初始化的属性访问异常:

问题描述 投票:0回答:1

我正在使用 Kotlin 进行 Android 开发,并遇到了名为 polyline 的 Lateinit 变量的问题。我收到的错误表明,即使我在 onCreate 调用的函数内为折线分配了一个值,应用程序仍然崩溃,并显示折线尚未初始化的消息。

请问我该怎么办? 我有什么遗漏的吗?

请参阅下面的代码。我删除了这个问题所有不必要的代码

class CustomerMapActivity : AppCompatActivity(), OnMapReadyCallback {

    private lateinit var polyline: String


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityCustomerMapBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val pickUpLocation = "Hall 2 Car Park, Benin City, Nigeria"
        val dropOffLocation = "Nadia Bakery, Benin City, Nigeria"
        val apiKey = R.string.google_api_key.toString()

        routesDetails(pickUpLocation, dropOffLocation, apiKey)


    }


    override fun onMapReady(mMap: GoogleMap) {
        
        drawRouteOnMap()

    }


    private fun routesDetails(origin: String, destination: String, apiKey: String){

        val routeService = ServiceBuilder.buildService(RouteService::class.java)

        val requestCall = routeService.getRoutes(origin, destination, apiKey)
        requestCall.enqueue(object: Callback<RoutesResponse> {
            override fun onResponse(call: Call<RoutesResponse>, response: Response<RoutesResponse>) {

                if (response.isSuccessful) {

                    if (routeResponse != null && routeResponse.routes.isNotEmpty()){


                        polyline = response.body()?.routes?.get(0)?.overview_polyline?.points.toString()

                    }else{
                    }
                }
            }

            override fun onFailure(call: Call<RoutesResponse>, t: Throwable) {

            }

        })
    }



    private fun drawRouteOnMap() {
        val decodedPolyline = PolyUtil.decode(polyline)
        
    }
java android kotlin android-debug
1个回答
0
投票

如果没有堆栈跟踪或其他代码,我们只能猜测其根本原因。

话虽如此,我的猜测是,在对

drawRouteOnMap()
的调用成功完成之前,正在调用
onMapReady(...)
(通过
routeService.getRoutes(origin, destination, apiKey)
)。

© www.soinside.com 2019 - 2024. All rights reserved.