Kotlin 未能在活动结果上交付结果
下面是摄像头的示例代码:Kotlin 未能在活动结果上交付结果,kotlin,onactivityresult,Kotlin,Onactivityresult,下面是摄像头的示例代码: val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) startActivityForResult(intent, REQUEST_CAMERA) 注意:当我按“活动结果”上的“照相机返回”时,显示如下: java.lang.RuntimeException:未能将结果ResultInfo{who=null,request=65537,result=0,data=null}传递到活动 并由以下原因引起:jav
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:
试着拿出这样的解决方案:
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 onActivity上显示结果如果我继续按“从摄影机返回”,则不会捕获图像。从画廊拍照和拍照,就像《魅力》一样
多谢各位。请帮我解决这个问题,因为沿途给出的解决方案不起作用。谷歌似乎必须覆盖ResultActivity(resultcode!!:Int)的乐趣,你不应该覆盖它吗
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
}
我在应用程序中使用kotlin实现PayPal支付网关时遇到了同样的问题。您只需在ActivityResult中添加?,因为如果数据为空或出现任何错误,则数据可能为空。因此,我们需要在activityresult 只需将SomeActivity的签名替换为以下内容:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
选中此项:activityresult(int-requestCode、int-resultCode、Intent-data)上的public void这是我从父片段派生的。那么如何在kotlin中实现呢?Java-to-kotlin转换器错误地将
data:Intent
作为参数,但它应该是可以为null的,所以将其更改为data:Intent?
。在扩展片段中,不需要像这样将super放在activityresult(){//no-need super}上,如果我也放了同样的参数,则会导致崩溃。最新的android build 26.0.2中似乎存在漏洞问题是由于使用了…data:Intent。。而不是…数据:意图?。。在onActivityResult parameters.yup中。新转换器kotlin出了问题。这完全帮助了我!非常感谢。