Android 每当我在nexus5中从gallery中选择视频时,onactivityresult返回空指针异常

Android 每当我在nexus5中从gallery中选择视频时,onactivityresult返回空指针异常,android,cursor,uri,video-capture,android-camera-intent,Android,Cursor,Uri,Video Capture,Android Camera Intent,我可以从三星和htc的多媒体资料中拍摄视频。但在nexus和moto g中,我从onActivityresult得到了一个空指针异常。为什么它不工作,特别是在这种手机上 onClick: selectPhoto.setOnClickListener(new View.OnClickListener() { @Override public void o

我可以从三星和htc的多媒体资料中拍摄视频。但在nexus和moto g中,我从onActivityresult得到了一个空指针异常。为什么它不工作,特别是在这种手机上

            onClick:

            selectPhoto.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub

                            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                            intent.setType("video/*");
                            Uri uri=getOutputVideoUri();
                            intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
                            startActivityForResult(
                                    Intent.createChooser(intent, "Select video"),
                                    SELECT_PHOTO);
                        }
                    });

            onActivityResult:

            @Override
                protected void onActivityResult(int requestCode, int resultCode,
                        Intent imageReturnedIntent) {
                    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

                    if (resultCode == RESULT_OK) {
                        Bundle extras=new Bundle();

                        selectedImage = imageReturnedIntent.getData();
                        file_select = true;
                        Log.i("selectedImage","Upload-->" +selectedImage);
                        // -----------------
                        imageUrl = getRealPathFromURI(selectedImage);
                        Log.i("imageurl", "Upload-->" + imageUrl);
                        Log.i("RealPathFromURI", imageUrl + "laxmi");
                        String filepath = getRealPathFromURI(selectedImage);
                        File fil = new File(filepath);
                        filename = fil.getName();
                        if (filename.endsWith(".mp4") || filename.endsWith(".flv")
                                || filename.endsWith(".3gp")) {
                            videoname.setText(fil.getName());
                            Bitmap bmThumbnail;
                            bmThumbnail = ThumbnailUtils.createVideoThumbnail(filepath,
                                    Thumbnails.MICRO_KIND);
                            image.setImageBitmap(bmThumbnail);
                        } else {
                            Toast.makeText(context,
                                    "Por favor, seleccione un archivo de v�deo ",
                                    Toast.LENGTH_SHORT).show();
                        }

                    }
                    if (resultCode == PICK_CATEGORY) {
                        category_select = true;
                        cat_id = imageReturnedIntent.getStringExtra("catid");

                        String category_name = imageReturnedIntent
                                .getStringExtra("catname");
                        spinner.setText("  " + category_name);
                    }

                }

            public String getRealPathFromURI(Uri contentUri) {
                    try{
                    String[] proj = { MediaStore.Video.Media.DATA };
                            //Cursor cursor = activity.managedQuery(contentUri, proj, null, null,
                            //null);
                     Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
                    Log.i("cursor", "upload-->" + cursor);
                    Log.i("contentUri", "upload-->" + contentUri);
                    Log.i("proj", "upload-->" + proj);
                     int position=0;

                        if (cursor !=null && cursor.moveToPosition(position)) {
                            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

                            Log.i("column_index", "Upload-->" + column_index);
                            videoPath = cursor.getString(column_index);  //I got a null pointer exception here.(But cursor hreturns saome value)
                            Log.i("videoPath", "Upload-->" + videoPath);
                            cursor.close();

                        }

                    }catch(Exception e){
                        return contentUri.getPath();
                    }
                    return videoPath;

                }

您使用了intent.putExtraMediaStore.EXTRA_输出,uri;。去掉那个。你不会得到NPE。

我删除了它。虽然我得到了一个NPE。在那之前,我没有使用那个代码,在我只得到那个NPE之后,我使用了它。但我仍然得到了一个空指针异常。你从哪里得到NPE?