I get NullPointerException on some devices (HTC Desire 510), but I have no idea why. Here's my code:
private String captureFilePath;
private boolean captureVideo(){
if (!MediaUtils.isIntentAvailable(this, MediaStore.ACTION_VIDEO_CAPTURE))
return false;
File capturedFile = FileUtils.getNewVideoPath(false);
capturedFilePath = capturedFile.getAbsolutePath();
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// capturedFilePath NOT NULL
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(capturedFilePath==null)
Log.d(TAG, "1. capturedFilePath == null");
Intent video = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
video.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(capturedFile));
startActivityForResult(video, VIDEO_CAPTURE_REQUEST);
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode != Activity.RESULT_OK)
return;
switch (requestCode) {
case VIDEO_CAPTURE_REQUEST:
builder = Media.newBuilder();
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// capturedFilePath NULL
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(capturedFilePath==null)
Log.d(TAG, "2. capturedFilePath == null");
// Exception
File capturedFile = new File(capturedFilePath);
//...
}
}
Why does variable capturedFilePath become null? Video saved on external storage is in right place, but I can't pick up it.
Not all devices produce this error (in example Lenovo S860 doesn't) and not always.