【发布时间】:2018-03-15 15:42:53
【问题描述】:
下面是来自相机的示例代码意图:
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent, REQUEST_CAMERA)
注意:当我从相机按回来时,活动结果显示如下:
java.lang.RuntimeException:将结果 ResultInfo{who=null, request=65537, result=0, data=null} 传递给活动失败 原因:java.lang.IllegalArgumentException:指定为非空的参数为空:
尝试提出这样的解决方案:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
try {
when(resultCode){
Activity.RESULT_CANCELED -> {
System.out.println("nothing")
}
Activity.RESULT_OK -> {
if (requestCode == SELECT_FILE)
onSelectFromGalleryResult(data)
else if (requestCode == REQUEST_CAMERA)
onCaptureImageResult(data)
}
}
}catch (e:NullPointerException){
e.printStackTrace()
}
}
仍然没有解决问题,因为当我调试日志时,如果我从相机按返回而不捕获图像,它不会出现在 func onactivityresult 上。从画廊拍照和拍照就像魅力一样。
谢谢。请帮助我解决这个问题,因为一路上给出的解决方案不起作用。谷歌似乎必须覆盖 fun onresultactivity(resultcode!!:Int)
【问题讨论】:
-
public void onActivityResult(int requestCode, int resultCode, Intent data) 这是我从父片段派生的。那么如何在 kotlin 中实现呢?
-
Java 到 Kotlin 的转换器错误地将
data: Intent作为参数,但它应该可以为空,因此将其更改为data: Intent?。