Я получаю эту ошибку при загрузке захваченного изображения в Firebase. Я видел в учебнике, что это может быть из-за моего телефона, но я сильно сомневаюсь в этом. Странная вещь, если я добавлю это к Bitmap
, я могу отобразить изображение. Из URI
, который выдает ошибку при загрузке.
Ошибка:
Process: com.otw.siliconsmelters, PID: 13538
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65637, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.otw.siliconsmelters/com.otw.siliconsmelters.quality_check_steps}: java.lang.IllegalArgumentException: uri cannot be null
at android.app.ActivityThread.deliverResults(ActivityThread.java:4177)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4220)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1579)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6228)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
Caused by: java.lang.IllegalArgumentException: uri cannot be null
at com.google.android.gms.common.internal.Preconditions.checkArgument(Unknown Source)
at com.google.firebase.storage.StorageReference.putFile(com.google.firebase:firebase-storage@@16.0.4:258)
at com.otw.siliconsmelters.row1.onActivityResult(row1.java:289)
at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:156)
at android.app.Activity.dispatchActivityResult(Activity.java:7124)
Объявления:
private StorageReference mStorage;
mStorage = FirebaseStorage.getInstance().getReference();
Мой код для захвата:
private void showImageChosen() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, CHOOSE_IMAGE);
}
Мой код для загрузки в Firebase:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CHOOSE_IMAGE && resultCode == RESULT_OK) {
Uri uri = data.getData();
StorageReference filepath = mStorage.child("PictureTest").child("" + System.currentTimeMillis());
filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
}
}