Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android lateinit属性resultReceiver尚未初始化_Android_Kotlin - Fatal编程技术网

Android lateinit属性resultReceiver尚未初始化

Android lateinit属性resultReceiver尚未初始化,android,kotlin,Android,Kotlin,我正在遵循指南,但当我运行我的应用程序时,它会因错误而崩溃 kotlin.UninitializedPropertyAccessException: lateinit property resultReceiver has not been initialized at com.imincode.earthlings.view.ui.MainActivity.startIntentService(MainActivity.kt:339) My 339是下面函数中的行putExtra(AppCo

我正在遵循指南,但当我运行我的应用程序时,它会因错误而崩溃

kotlin.UninitializedPropertyAccessException: lateinit property resultReceiver has not been initialized at com.imincode.earthlings.view.ui.MainActivity.startIntentService(MainActivity.kt:339)
My 339是下面函数中的行
putExtra(AppConstants.RECEIVER,resultReceiver)

private fun startIntentService() {

    val intent = Intent(this, FetchAddressIntentService::class.java).apply {
        putExtra(AppConstants.RECEIVER, resultReceiver)
        putExtra(AppConstants.LOCATION_DATA_EXTRA, lastLocation)
    }
    startService(intent)
}
resultReceiver
声明如下

private lateinit var resultReceiver: AddressResultReceiver
现在我不知道如何初始化
resultReceiver
,因为它是
AddressResultReceiver
类型,是一个内部类,如指南中所示

internal inner class AddressResultReceiver(handler: Handler) : ResultReceiver(handler) {

        override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {

            // Display the address string
            // or an error message sent from the intent service.
            var addressOutput = resultData?.getString(AppConstants.RESULT_DATA_KEY) ?: ""
            Timber.d("addressOutput: " + addressOutput)

            // Show a toast message if an address was found.
            if (resultCode == AppConstants.SUCCESS_RESULT) {
                Timber.d("address found!!")
            }

        }
    }
现在我不知道如何初始化resultReceiver,因为它是AddressResultReceiver类型,是一个内部类,如指南中所示

internal inner class AddressResultReceiver(handler: Handler) : ResultReceiver(handler) {

        override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {

            // Display the address string
            // or an error message sent from the intent service.
            var addressOutput = resultData?.getString(AppConstants.RESULT_DATA_KEY) ?: ""
            Timber.d("addressOutput: " + addressOutput)

            // Show a toast message if an address was found.
            if (resultCode == AppConstants.SUCCESS_RESULT) {
                Timber.d("address found!!")
            }

        }
    }

您可以初始化
内部类
如:
YourOuterClass().AddressResultReceiver(yourHandler)

您可以检查是否已初始化,即:

 if(!resultReceiver.isInitialized)
    resultReceiver = YourOuterClass().AddressResultReceiver(yourHandler)
现在我不知道如何初始化resultReceiver,因为它是AddressResultReceiver类型,是一个内部类,如指南中所示

internal inner class AddressResultReceiver(handler: Handler) : ResultReceiver(handler) {

        override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {

            // Display the address string
            // or an error message sent from the intent service.
            var addressOutput = resultData?.getString(AppConstants.RESULT_DATA_KEY) ?: ""
            Timber.d("addressOutput: " + addressOutput)

            // Show a toast message if an address was found.
            if (resultCode == AppConstants.SUCCESS_RESULT) {
                Timber.d("address found!!")
            }

        }
    }

您可以初始化
内部类
如:
YourOuterClass().AddressResultReceiver(yourHandler)

您可以检查是否已初始化,即:

 if(!resultReceiver.isInitialized)
    resultReceiver = YourOuterClass().AddressResultReceiver(yourHandler)

结果受试者未初始化该方法。。。还有,我应该为你的处理程序写什么?既然
handler
只在内部类
中声明,那么我应该为您的handler添加什么?由于处理程序只在内部类中声明
,因此您需要将其从params中删除,因为您不需要将其作为参数!结果受试者未初始化该方法。。。还有,我应该为你的处理程序写什么?既然
handler
只在内部类
中声明,那么我应该为您的handler添加什么?由于处理程序只在内部类中声明
,因此您需要将其从params中删除,因为您不需要将其作为参数!