J'utilise la version 4.27.0
de facebook sdk pour Android. J'ai eu un crash uniquement pour les appareils Android 8+. La trace de la pile est la suivante:
Fatal Exception: Java.lang.AssertionError: No NameTypeIndex match for SHORT_DAYLIGHT
at Android.icu.impl.TimeZoneNamesImpl$ZNames.getNameTypeIndex(TimeZoneNamesImpl.Java:724)
at Android.icu.impl.TimeZoneNamesImpl$ZNames.getName(TimeZoneNamesImpl.Java:790)
at Android.icu.impl.TimeZoneNamesImpl.getTimeZoneDisplayName(TimeZoneNamesImpl.Java:183)
at Android.icu.text.TimeZoneNames.getDisplayName(TimeZoneNames.Java:261)
at Java.util.TimeZone.getDisplayName(TimeZone.Java:405)
at Java.util.TimeZone.getDisplayName(TimeZone.Java:370)
at com.facebook.internal.Utility.refreshTimezone(Utility.Java:1066)
at com.facebook.internal.Utility.refreshPeriodicExtendedDeviceInfo(Utility.Java:1056)
at com.facebook.internal.Utility.setAppEventExtendedDeviceInfoParameters(Utility.Java:707)
at com.facebook.internal.AppEventsLoggerUtility.getJSONObjectForGraphAPICall(AppEventsLoggerUtility.Java:68)
at com.facebook.FacebookSdk.publishInstallAndWaitForResponse(FacebookSdk.Java:568)
at com.facebook.FacebookSdk$4.run(FacebookSdk.Java:547)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1162)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:636)
at Java.lang.Thread.run(Thread.Java:764)
J'ai cherché cela sur le Web mais je n'ai rien pu trouver d'utile. Veuillez fournir quelques indications ici.
Je suis également confronté à ce problème. Pour mettre à niveau le SDK Facebook vers la dernière version (SDK Facebook Android 4.35), ils ont ajouté une solution de contournement pour ce problème:
private static void refreshTimezone() {
try {
TimeZone tz = TimeZone.getDefault();
deviceTimezoneAbbreviation = tz.getDisplayName(
tz.inDaylightTime(new Date()),
TimeZone.SHORT
);
deviceTimeZoneName = tz.getID();
} catch (AssertionError e) {
// Workaround for a bug in Android that can cause crashes on Android 8.0 and 8.1
} catch (Exception e) {
}
}