Не удалось преобразовать объект в JSON

Доброе утро, у меня возникает эта ошибка, когда я пытаюсь зарегистрироваться или войти в систему через свое виртуальное устройство:

E/StorageHelpers: Failed to turn object into JSON   java.lang.NullPointerException: Attempt to invoke virtual method   'org.json.JSONObject com.google.firebase.auth.internal.zzm.zzbf()' on a null  object reference at com.google.firebase.auth.internal.zzz.zzi(Unknown Source) at  com.google.firebase.auth.internal.zzz.zzg(Unknown Source) at com.google.firebase.auth.FirebaseAuth.zza(Unknown Source) at com.google.firebase.auth.FirebaseAuth$zza.zza(Unknown Source) at com.google.firebase.auth.api.internal.zzbq.zzaa(Unknown Source) at com.google.firebase.auth.api.internal.zzcy.zzal(Unknown Source) at  com.google.firebase.auth.api.internal.zzcy.zza(Unknown Source) at com.google.firebase.auth.api.internal.zzdb.zza(Unknown Source) at com.google.firebase.auth.api.internal.zzci.dispatchTransaction(Unknown Source) at com.google.android.gms.internal.firebase_auth.zzb.onTransact(Unknown Source) at android.os.Binder.execTransact(Binder.java:453)

Виртуальное устройство - Xperia Z3 Android 6.0.1 API23.

А это код LoginActivity.java:

 mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        progressBar.setVisibility(View.GONE);
        if (task.isSuccessful()) {
            finish();
            Intent intent = new Intent(LoginActivity.this, menuPrincipal.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
        } else {
            Toast.makeText(getApplicationContext(), task.getException().getMessage(), Toast.LENGTH_SHORT).show();
        }
    }
});

Я думаю, что ошибка исходит из этой строки:

Не удалось преобразовать объект в JSON

Потому что у .getMessageget предупреждение о java.lang.NullPointerException, как в сообщении об ошибке.

У меня такое же предупреждение в profileRegistration.java на profileImageUrl = taskSnapshot.getDownloadUrl().toString();:

private void uploadImageToFirebaseStorage(){
    StorageReference profilImageRef =    FirebaseStorage.getInstance().getReference("profilepics/" +   System.currentTimeMillis() + ".jpg");

    if (uriProfileImage != null) {
        progressBarImage.setVisibility(View.VISIBLE);
        profilImageRef.putFile(uriProfileImage)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        progressBarImage.setVisibility(View.GONE);
                        profileImageUrl = taskSnapshot.getDownloadUrl().toString();
                    }
                })

Не удалось преобразовать объект в JSON

Есть идеи, что вызывает это или как это исправить?

добавьте проверку, если не null, чтобы избежать этой проблемы

Atif AbbAsi 10.05.2018 07:27

пожалуйста, поделитесь своей моделью задачи

propoLis 10.05.2018 08:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
2
381
4

Ответы 4

Сначала зарегистрируйте свою ошибку, как показано ниже:

Log.v("Tag",""+e.task.getException().getMessage());

Если это работает, добавьте ""+ в свое тост-сообщение. Если нет, попробуйте с .toString() после .getMessage() в журнале.

Недавно у меня была аналогичная проблема (нулевой указатель) с библиотекой Firebase Auth. Проблема заключалась в том, что я обновился до последних зависимостей Firebase (которые теперь все на 15+ и уникальны), но я забыл обновить зависимость моих сервисов Google в корневом файле gradle (версия 3.3.1 на момент ввода) . Убедитесь, что каждая из ваших зависимостей является последней с правильным номером версии и что ваши службы Google также обновлены. Это может быть требование, распространяющееся на каждую из зависимостей Firebase.

Для меня решением было удалить локальные данные (долгое нажатие на приложение в панели приложений, затем информация о приложении -> хранилище -> очистить данные) и перезапустить приложение.

была аналогичная ошибка в FirebaseAuth Flutter, решаемая удалением локальных данных.

UpaJah 11.07.2018 14:45

Мне удалось решить проблему, понизив firebase-auth до 15.0.0.

implementation 'com.google.firebase:firebase-auth:15.0.0'

Другие вопросы по теме