2017-01-27 8 views
-2

zu Firebase Wenn ich versuche, meine App zu laden, um Feuerbasis mit dem following error.App stürzt ab, wenn zu laden versuchen

Absturz Ich habe eine ‚Hochladen‘ Knopf, der verwendet wird, um die Kamera aufzurufen. Wenn Sie darauf klicken, wird das Bild nicht in Firebase hochgeladen.

Mein Code:

private Button mUploadBtn; 
private ImageView mImageView; 

private static final int CAMERA_REQUEST_CODE = 1; 

private StorageReference mStorage; 

Uri photoURI; 

private ProgressDialog mProgressDialog; 

private static final int GALLERY_INTENT = 2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mStorage = FirebaseStorage.getInstance().getReference(); 

    mUploadBtn = (Button) findViewById(R.id.upload); 

    mImageView = (ImageView) findViewById(R.id.imageView); 

    mProgressDialog = new ProgressDialog(this); 

    mUploadBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

      startActivityForResult(intent, CAMERA_REQUEST_CODE); 
     } 
    }); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) { 

     mProgressDialog.setMessage("Uplaoding"); 
     mProgressDialog.show(); 

     Uri uri = data.getData(); 



     StorageReference filepath = mStorage.child("Photos").child("file"); 
     filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       mProgressDialog.dismiss(); 
       Toast.makeText(MainActivity.this,"Done",Toast.LENGTH_LONG).show(); 
      } 
     }); 




    } 
} 
+1

es deutlich in Ihrem Fehlerprotokoll aus dem Bild geschrieben wird, die Sie gebucht haben. 'Uri kann nicht null sein' –

Antwort

0

Es sieht aus wie Sie nicht richtig mit der Kamera Absicht arbeiten. Der von Ihnen angezeigte Code erwartet, dass die von der Kamera-App zurückgegebene Absicht über die Methode getData() eine Uri für das erfasste Bild enthält. So funktioniert es nicht.

Ich empfehle Ihnen, stattdessen this tutorial zu folgen, um mit der Kamera zu arbeiten.

0

überschreibt diese Methode und die folgenden Schritte aus

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) 
    { 
     Uri uri = data.getData(); 
     StorageReference image_path = storageReference.child("Camera Photos").child(uri.getLastPathSegment()); 
     image_path.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Toast.makeText(MainActivity.this, "Image Uploaded", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

}