活动结果失败的结果

以下是来自相机的示例代码意图:

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:指定为非null的参数为null:

尝试出来这样的解决方案:

 try { when(requestCode){ 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如果我去按相机回来,而不是捕获图像。 从画廊的图像和皮卡图像工作像魅力。

谢谢。 请帮我解决这个问题,因为一路解决办法不行。 它似乎像谷歌必须重写结果代码!!(结果代码!!:INT)< – 这应该有返回非null。

你不应该重写这个吗?

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) } 

在使用kotlin在我的应用程序中实现PayPal支付网关时,我遇到了同样的问题。 你只需要添加 与Intent onActivityResult作为数据可以为空如果数据为空或任何错误。 所以我们需要在onActivityResult中将数据定义为空

只需用下面的代码替换SomeActivity的onActivityResult签名:

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)