我是Kotlin的新手,在我的OnActivityResult
方法中出现了如下错误
‘类型不匹配:推断的类型是意图类型?但意料之中。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode != REQUEST_CODE)
{
return
}
if (resultCode != Activity.RESULT_OK)
{
Toast.makeText(this,"Screen cast permission denied",Toast.LENGTH_LONG).show()
return
}
mediaProjectionCallBack = MediaProjectionCallback()
mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)
mediaProjection!!.registerCallback(mediaProjectionCallBack,null)
virtualDisplay = createVirtualDisplay()
mediaRecorder!!.start()
}
当我使用onactivity
result中的数据时,它会给我一个上面提到的错误:
mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)
在Kotlin中存在可为空的类型,intent
和intent
不是同一类型。数据:意图?
意味着您的数据
可以是空
。
GetMediaProjection(resultCode:int,data:intent)
方法希望数据的类型为intent
,这意味着它不能接受null
值。因此,您必须使用!!
运算符将其强制转换为非NULL值,或者检查它是否为NULL:
if(data != null){
mediaProjection = projectionManager!!.getMediaProjection(resultCode,data)
}
在这种情况下,它会自动知道数据不是空的,因此不会抛出错误。