J'utilise GoogleApiClient pour connecter les utilisateurs utilisant leur compte Google. Fondamentalement, j'utilise Firebase Auth avec connexion Google.Rare NullPointerException dans GoogleApiClient utilisant Firebase
Mais je reçois cette panne sur certains appareils tous les jours. Lorsque je fais des tests sur certains de mes appareils (OnePlus 3, Nexus 5X, Moto G, etc.), je ne vois jamais ce crash.
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
at com.google.android.gms.internal.zzamy.zzd(Unknown Source)
at com.google.android.gms.internal.zzamv.n(Unknown Source)
at com.google.android.gms.internal.zzamv.zza(Unknown Source)
at com.google.android.gms.internal.zzamv$2.run(Unknown Source)
at java.lang.Thread.run(Thread.java:818)
C'est ce que je fais pour instancier le GoogleApiClient. Je ne vois pas l'accident dans des situations normales, mais dans certains appareils, je vois cela. Voici ce que je fais dans le code,
String mClientId = parcel.getProviderExtra().getString(CLIENT_ID_KEY);
GoogleSignInOptions googleSignInOptions;
googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(mClientId)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(App.getContext())
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();
mGoogleApiClient.connect();
Qu'est-ce que je fais mal ici? Mon meilleur pari est, App.getContext()
qui donne le contexte d'application pour instancier le client. Cela peut-il être le problème?
Je peux utiliser le contexte d'activité, mais l'utilisation de cette méthode entraîne une fuite de mémoire. Quel est le problème ici et comment peut-il être résolu?
Cela crée une très mauvaise expérience à certains utilisateurs qui obtiennent un accident juste après l'ouverture de l'application et d'essayer de chanter.
Avez-vous résolu ceci? –
Avez-vous essayé d'utiliser la méthode 'getApplicationContext()' à la place de 'App.getContext()'? Est-ce que cela se passe aussi si vous utilisez '.requestIdToken (getString (R.string.default_web_client_id))'? –
@AlexMamo a essayé 'getApplicationContext' sans aucune chance –