2017-06-17 3 views
-1

Ich versuche, eine Ersatzprofilbildfunktion in meinem Code mit den Codes unten zu erstellen.Es funktioniert gut manchmal.Andere Male passiert nichts, nachdem ich das Bild auswählen aus meiner Galerie (Einige Bilder). Es scheint, das Bild aus der Galerie Aktivität abstürzt nur, nachdem ich das Bild zum Hochladen auswählen und die Anwendung beendet nur in Logcat ohne Fehler.Es war gut, bevor ich den Fortschritt DialogHochladen von Bild zu Firebase-Speicher funktioniert nicht mit einigen Bildern, wenn ich hinzugefügt progessDialog

hinzugefügt
private void postImage() { 

     String path = "userProfiles/" + UUID.randomUUID() + ".jpeg"; 
     StorageReference userProfilesRef = storage.getReference(path); 
     userProfilesRef.putFile(resultUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 

       downloadUrls = taskSnapshot.getDownloadUrl().toString(); 
       Toast.makeText(getApplicationContext(), "File Uploaded ", Toast.LENGTH_LONG).show(); 
       mProgressDialog.dismiss(); 
       final String id = firebaseAuth.getCurrentUser().getUid(); 

       databaseReference.addValueEventListener(new ValueEventListener() { 
        @Override 
        public void onDataChange(DataSnapshot dataSnapshot) { 
         if (dataSnapshot.child("Male").hasChild(id)){ 

          databaseReference.child("Male").child(id).child("downloadUrl").setValue(downloadUrls); 
          databaseReference1.child("Male").child(key).child("downloadUrl").setValue(downloadUrls); 

         } 
         else { 

          databaseReference.child("Female").child(id).child("downloadUrl").setValue(downloadUrls); 
          databaseReference1.child("Female").child(key).child("downloadUrl").setValue(downloadUrls); 

         } 

        } 

        @Override 
        public void onCancelled(DatabaseError databaseError) { 
         // Toast.makeText(getApplicationContext(), " Uploaded ", Toast.LENGTH_LONG).show(); 
        } 
       }); 


      } 
     }); 

    /*  userProfilesRef.putFile(filePath).addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception e) { 
       Toast.makeText(getApplicationContext(), " Upload Failed, Please try again ", Toast.LENGTH_LONG).show(); 
       //progressDialog.dismiss(); 

      } 
     });*/ 
    } 



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

    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { 
     filePath = data.getData(); 

     CropImage.activity(filePath) 
       .setGuidelines(CropImageView.Guidelines.ON) 
       .setAspectRatio(1, 1) 
       .start(this); 



    } 

     if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { 
      CropImage.ActivityResult result = CropImage.getActivityResult(data); 
      if (resultCode == RESULT_OK) { 
       mProgressDialog.setMessage("Uploading Please Wait..."); 
       mProgressDialog.show(); 
       resultUri = result.getUri(); 
       postImage(); 
       image.setImageURI(resultUri); 

      } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { 
       Exception error = result.getError(); 
      } 
     } 


} 
+1

vermissen würde ich Ihnen helfen, wenn Sie einen logcat haben und einen [MCVE] –

+0

Bitte ich meinen Code bearbeitet habe @ cricket_007 –

+0

Ich sehe keinen Code Bearbeitungen, nur der Text. Ich wäre überrascht, wenn es kein logcat gibt, aber 'onCancelled' ist leer und' Exception error' wird nie gedruckt. Versuchen Sie, weitere 'Log.d'-Anweisungen hinzuzufügen, um zu sehen, wo Ihr Code bricht. –

Antwort

0

versuchen

if(mProgressDialog != null) 
    mProgressDialog.dismiss(); 
hinzufügen

wenn kein Fehler vorhanden ist, so dass Sie etwas an Ihrem Dialog Erklärung

Verwandte Themen