Не удалось превратить объект в JSON - PullRequest
0 голосов
/ 10 мая 2018

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

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();
        }
    }
});

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

enter image description here

Потому что .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();
                    }
                })

enter image description here

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

Ответы [ 4 ]

0 голосов
/ 15 мая 2018

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

implementation 'com.google.firebase:firebase-auth:15.0.0'
0 голосов
/ 13 мая 2018

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

0 голосов
/ 13 мая 2018

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

0 голосов
/ 10 мая 2018

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

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

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

...