我正在尝试上传从相机拍摄的照片,我得到了Nullpointer异常,这里是代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK){
uri= data.getData();
mImagenIv.setImageURI(uri);
StorageReference filepath = mStorage.child("fotos").child(uri.getLastPathSegment());
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(getApplicationContext(),"si señor",Toast.LENGTH_LONG).show();
}
});
} else if(requestCode == CAMERA_INTENT && resultCode == RESULT_OK){
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
Uri uri= data.getData();
mImagenIv.setImageBitmap(bitmap);
StorageReference filepath = mStorage.child("fotos").child(uri.getLastPathSegment());
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(getApplicationContext(),"si señor",Toast.LENGTH_LONG).show();
}
});
}
}
当我从存储中选择一个代码按预期工作的图片时,我使用相同的代码时的事情。空指针我在下面一行得到它:
StorageReference filepath = mStorage.child("fotos").child(uri.getLastPathSegment());
有人可以帮忙吗?
答案 0 :(得分:0)
假设startActivityForResult()
CAMERA_INTENT
号召用ACTION_IMAGE_CAPTURE
正在使用data.getData()
,null
应始终返回Bitmap bitmap = (Bitmap) data.getExtras().get("data");
。如果Bitmap
有效,那么Bitmap
就是您的照片。您需要通过某种方式将其传达给Firebase。如果Firebase API不接受compress()
,您可能必须使用Bitmap
将{{1}}写入某个临时文件以用于Firebase。