NPE sur Facebook SDK 4.10: Essayez d’appeler la méthode d’interface ' java.lang.Objet com.Facebook.injecter.Paresseux.get()' sur une référence d’objet null
Background
Récemment, nous avons mis à jour la bibliothèque SDK Facebook vers 4.10 (à partir d’ici).
Avant, nous avions le même bug de temps en temps, mais maintenant il semble que cela se produise beaucoup plus souvent.
The problem
There is no way for us to understand where and why it occurs.
Here’s the crash log:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method ‘java.lang.Object com.facebook.inject.Lazy.get()’ on a null object reference at android.os.Parcel.readException(Parcel.java:1552) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142) at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) at android.content.ContentResolver.query(ContentResolver.java:494) at android.content.ContentResolver.query(ContentResolver.java:429) at com.facebook.internal.NativeProtocol.fetchAllAvailableProtocolVersionsForAppInfo(NativeProtocol.java:790) at com.facebook.internal.NativeProtocol.access$000(NativeProtocol.java:49) at com.facebook.internal.NativeProtocol$NativeAppInfo.fetchAvailableVersions(NativeProtocol.java:281) at com.facebook.internal.NativeProtocol$NativeAppInfo.access$600(NativeProtocol.java:226) at com.facebook.internal.NativeProtocol$1.run(NativeProtocol.java:763) at java.util.simultané.Filpoolexecutor.runWorker (ThreadPoolExecutor.java: 1112) à java.util.simultané.ThreadPoolExecutorWorker Travailleur.exécuter (ThreadPoolExecutor.java: 587) à java.lang.Fil.exécuter (Thread.java:818)
Et, comme c’est un rapport de Crashlytics, j’ai aussi des statistiques:
- habituellement (90%) se produit sur les appareils Meizu, et le reste sur LG, Samsung et autres.
- habituellement (72%) se produit sur les versions d’Android 5.1, et le reste sur toutes les autres versions que nous prenons en charge (4.x et au-dessus).
Ce que j’ai essayé
J’ai essayé de rechercher l’exception, mais je ne trouve rien de similaire.
J’ai essayé de trouver le “com.Facebook.injecter.Classe “paresseux”, mais c’est introuvable. Je ne trouve même pas de classes et de dépôts liés à l’injection que le sdk utilise pour une utilisation normale. Uniquement pour les tests unitaires.
J’ai également essayé d’aller sur le site Github de Facebook (ici), mais il n’y a nulle part où écrire là-bas.
Plus tard, j’ai constaté que cela avait été signalé sur le site Web des développeurs de Facebook, mais il ne semble pas que cela va être corrigé, et personne ne sait comment le gérer.Facebook, qui dit que c’est peut-être à cause de l’utilisation d’une ancienne version de l’application Facebook, mais il semble que ce soit incorrect.
La question
Pourquoi cela se produit-il? Existe-t-il une solution de contournement pour cela? Facebook travaille-t-il sur une solution pour cela?
Existe-t-il une version du SDK Facebook pour laquelle ce problème ne se produit pas?
Et, surtout, Comment peut-il être manipulé et corrigé?