Я пишу приложение с использованием Java в Android Studio.
Мне нужно получить несколько filePaths (тип Uri) из метода onActivityResult и передать его в массив данных типа Uri. Этот массив затем передается объекту. Однако по какой-то причине, когда я тестирую свой код, я получаю сообщение об ошибке переполнения стека.
Мой массив имен называется imgPaths
Я перепробовал все, что смог найти, но безрезультатно
private void uploadImage() {
if (filePath != null) {
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Uploading...");
progressDialog.show();
StorageReference ref = storageReference.child("images/" + UUID.randomUUID().toString());
ref.putFile(filePath)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.dismiss();
imgPaths.add(filePath); // <-------- ERROR CAUSED BY THIS LINE!!! :(
Toast.makeText(registrationPagePart2.this, "Upload Successful", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(registrationPagePart2.this, "Failed " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot
.getTotalByteCount());
progressDialog.setMessage("Uploaded " + (int) progress + "%");
}
});
this.count++;
}
}
Ожидаемый результат: ArrayList типа Uri, содержащий местоположение несколькихфайлы изображений.
Фактический результат: StackOverflowError