Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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/3/android/180.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 如何在与“拍摄”合影后设置ActivityResulton kotlin;以下声明具有相同的JVM签名;错误?_Android_Kotlin_Onactivityresult - Fatal编程技术网

Android 如何在与“拍摄”合影后设置ActivityResulton kotlin;以下声明具有相同的JVM签名;错误?

Android 如何在与“拍摄”合影后设置ActivityResulton kotlin;以下声明具有相同的JVM签名;错误?,android,kotlin,onactivityresult,Android,Kotlin,Onactivityresult,我试图在从本地文件中拍摄或附加照片后,在kotlin类上设置onActivityResult。java代码运行良好 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) { if (resultCode == Activity.RESUL

我试图在从本地文件中拍摄或附加照片后,在kotlin类上设置onActivityResult。java代码运行良好

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
        if (resultCode == Activity.RESULT_OK) {
            photoList.add(mPhotoFile.toString());
        }
    }else{
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();
            photoList.add(picturePath);
        }
    }
}
但是在kotlin类上,相同的代码块给了我一个错误“以下声明具有相同的JVM签名”

这是kotlin代码

private fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
        if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
            if (resultCode == Activity.RESULT_OK) {
                photoList.add(mPhotoFile.toString())
            }
        } else {
            if (resultCode == Activity.RESULT_OK) {
                val selectedImage = data.data
                val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
                val cursor = contentResolver.query(selectedImage, filePathColumn, null, null, null)
                cursor.moveToFirst()
                val columnIndex = cursor.getColumnIndex(filePathColumn[0])
                val picturePath = cursor.getString(columnIndex)
                cursor.close()
                photoList.add(picturePath)
            }
        }
    }
错误是


任何帮助或建议都将非常感谢

您应该像这样更改代码

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
        if (requestCode == CameraService.REQUEST_IMAGE_CAPTURE) {
            if (resultCode == Activity.RESULT_OK) {
                photoList.add(mPhotoFile.toString())
            }
        } else {
            if (resultCode == Activity.RESULT_OK) {
                val selectedImage = data.data
                val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
                val cursor = contentResolver.query(selectedImage, filePathColumn, null, null, null)
                cursor.moveToFirst()
                val columnIndex = cursor.getColumnIndex(filePathColumn[0])
                val picturePath = cursor.getString(columnIndex)
                cursor.close()
                photoList.add(picturePath)
            }
        }
    }
在fragment-onActivityResult方法中,数据参数可为null,因此必须使用
data:Intent?

private fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    // your code here
}

谢谢你的回复。这样做了,只需对intent“data:intent?”进行空检查。