Android Oreo's downloadable fonts exceptions

Viewed 709

Just uploaded a new version of my app to beta with the new Downloadable Fonts and Fonts in XML features and the pre-launch report from google is showing me crashes on some devices.

LG G6, Android 7.0:

FATAL EXCEPTION: ControllerMessenger Process: com.example.mobile, PID: 11263 java.lang.NullPointerException: Attempt to invoke a virtual method on a null object reference at android.support.v4.graphics.TypefaceCompatUtil.mmap(TypefaceCompatUtil.java:98) at android.support.v4.graphics.TypefaceCompatApi24Impl.createFromFontInfo(TypefaceCompatApi24Impl.java:140) at android.support.v4.graphics.TypefaceCompat.createFromFontInfo(TypefaceCompat.java:167) at android.support.v4.provider.FontsContractCompat.getFontInternal(FontsContractCompat.java:190) at android.support.v4.provider.FontsContractCompat.getFontSync(FontsContractCompat.java:244) at android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:124) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:390) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:336) at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:205) at com.example.libs.fragments.BaseFragment.onStart(BaseFragment.java:148) at android.support.v4.app.Fragment.performStart(Fragment.java:2287) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1458) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377) at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.support.test.espresso.base.Interrogator.loopAndInterrogate(Interrogator.java:148) at android.support.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:466) at android.support.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:420) at android.support.test.espresso.base.UiControllerImpl.injectMotionEvent(UiControllerImpl.java:234) at android.support.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:140) at android.support.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:123) at android.support.test.espresso.action.Tap.sendSingleTap(Tap.java:170) at android.support.test.espresso.action.Tap.access$100(Tap.java:31) at android.support.test.espresso.action.Tap$1.sendTap(Tap.java:46) at android.support.test.espresso.action.GeneralClickAction.perform(GeneralClickAction.java:136) at android.support.test.espresso.ViewInteraction$SingleExecutionViewAction.perform(ViewInteraction.java:355) at android.support.test.espresso.ViewInteraction.doPerform(ViewInteraction.java:242) at android.support.test.espresso.ViewInteraction.access$100(ViewInteraction.java:62) at android.support.test.espresso.ViewInteraction$1.call(ViewInteraction.java:149) at android.support.test.espresso.ViewInteraction$1.call(ViewInteraction.java:146) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6316) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Moto G4 Play, Android 6.0:

FATAL EXCEPTION: main Process: com.example.mobile, PID: 13208 java.lang.NullPointerException: Attempt to read from field 'int android.support.v4.provider.FontsContractCompat$TypefaceResult.mResult' on a null object reference at android.support.v4.provider.FontsContractCompat$2.onReply(FontsContractCompat.java:277) at android.support.v4.provider.FontsContractCompat$2.onReply(FontsContractCompat.java:274) at android.support.v4.provider.FontsContractCompat$3.onReply(FontsContractCompat.java:312) at android.support.v4.provider.FontsContractCompat$3.onReply(FontsContractCompat.java:300) at android.support.v4.provider.SelfDestructiveThread$2$1.run(SelfDestructiveThread.java:149) at android.os.Handler.handleCallback(Handler.java:746) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5459) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

P8 Lite, Android 5.0:

FATAL EXCEPTION: main Process: com.example.mobile, PID: 19646 android.view.InflateException: Binary XML file line #145: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:652) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) at android.view.LayoutInflater.rInflate(LayoutInflater.java:825) at android.view.LayoutInflater.rInflate(LayoutInflater.java:828) at android.view.LayoutInflater.rInflate(LayoutInflater.java:828) at android.view.LayoutInflater.rInflate(LayoutInflater.java:828) at android.view.LayoutInflater.inflate(LayoutInflater.java:523) at android.view.LayoutInflater.inflate(LayoutInflater.java:425) at com.example.libs.fragments.BasicBaseFragment.initView(BasicBaseFragment.java:46) at com.example.libs.fragments.BasicBaseFragment.onCreateView(BasicBaseFragment.java:73) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2261) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419) at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819) at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377) at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5538) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:288) at android.view.LayoutInflater.createView(LayoutInflater.java:626) ... 27 more Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.ParcelFileDescriptor.getFd()' on a null object reference at android.support.v4.graphics.TypefaceCompatApi21Impl.getFile(TypefaceCompatApi21Impl.java:50) at android.support.v4.graphics.TypefaceCompatApi21Impl.createFromFontInfo(TypefaceCompatApi21Impl.java:72) at android.support.v4.graphics.TypefaceCompat.createFromFontInfo(TypefaceCompat.java:167) at android.support.v4.provider.FontsContractCompat.getFontInternal(FontsContractCompat.java:190) at android.support.v4.provider.FontsContractCompat.getFontSync(FontsContractCompat.java:244) at android.support.v4.graphics.TypefaceCompat.createFromResourcesFamilyXml(TypefaceCompat.java:124) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:390) at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:336) at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:205) at com.example.libs.widget.view.MandatoryEditTextView.initialize(MandatoryEditTextView.java:179) at com.example.libs.widget.view.MandatoryEditTextView.init(MandatoryEditTextView.java:120) at com.example.libs.widget.view.MandatoryEditTextView.(MandatoryEditTextView.java:98) ... 30 more

I noticed in the report videos that those crashes are occurring in the first screens of the app but when i run the app myself on an emulator or a real device (Oreo or pre Oreo) this crashes dont happen.

Also, as a side note, but i think its related, i've been trying to use

<meta-data android:name="preloaded_fonts"
        android:resource="@array/preloaded_fonts" />

in AndroidManifest.xml but it doesnt seem to work at all. when trying to access a font, either via xml or by code, the app crashes because the font isnt being recognized. So i decided eventually to remove this meta-data.

Help is appreciated.

0 Answers
Related