I've observed some crashes among the users of my app which is related to a configuration change and the Activity being recreated, I was not able to reproduce it. The issue seems to be inside the Android classes and therefore there's no chance for me to fix it directly.
Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'float android.content.res.Configuration.fontScale' on a null object reference
at android.content.res.Configuration.setTo + 904(Configuration.java:904)
at android.content.res.Configuration.(Configuration.java:891)
at android.app.ActivityThread.createNewConfigAndUpdateIfNotNull + 5133(ActivityThread.java:5133)
at android.app.ActivityThread.performConfigurationChanged + 5203(ActivityThread.java:5203)
at android.app.ActivityThread.performConfigurationChangedForActivity + 5117(ActivityThread.java:5117)
at android.app.ActivityThread.handleResumeActivity + 3994(ActivityThread.java:3994)
at android.app.ActivityThread.handleLaunchActivity + 3070(ActivityThread.java:3070)
at android.app.ActivityThread.handleRelaunchActivity + 5006(ActivityThread.java:5006)
at android.app.ActivityThread.-wrap21(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage + 1665(ActivityThread.java:1665)
at android.os.Handler.dispatchMessage + 102(Handler.java:102)
at android.os.Looper.loop + 154(Looper.java:154)
at android.app.ActivityThread.main + 6816(ActivityThread.java:6816)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 1563(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main + 1451(ZygoteInit.java:1451)
Since I'm not able to recreate it, opening a bug report on Goggle issuetracker would be pretty useless. Does anyone have a clue on what's happening here? Has anyone encountered this before?
There is clearly a bug because the ActivityThread#createNewConfigAndUpdateIfNotNull(Configuration, Configuration)
method, which is responsible for passing a null
value to Configuration#setTo(Configuration)
has its first parameter annotated as @NonNull
.
The crashed happened mainly on Android 7.1.1, the app targets SDK 28.