'Getting ANR at Violation.kt line 28 caused by FragmentStrictMode

Firebase crashlytics recently started logging one ANR related to FragmentManager. Below is the concise Stacktrace ->

main (runnable): tid=1 systid=14811 #00 pc 0x483028 libart.so #01 pc 0x588888 libart.so #02 pc 0x5a56d4 libart.so #03 pc 0x589564 libart.so #04 pc 0x6286ec libart.so at java.lang.Throwable.nativeFillInStackTrace(Throwable.java) at java.lang.Throwable.fillInStackTrace(Throwable.java:799) at java.lang.Throwable.(Throwable.java:277) at java.lang.Exception.(Exception.java:66) at java.lang.RuntimeException.(RuntimeException.java:62) at androidx.fragment.app.strictmode.Violation.(Violation.kt:28) at androidx.fragment.app.strictmode.SetUserVisibleHintViolation.(SetUserVisibleHintViolation.kt:30) at androidx.fragment.app.strictmode.FragmentStrictMode.onSetUserVisibleHint(FragmentStrictMode.java:131) at androidx.fragment.app.Fragment.setUserVisibleHint(Fragment.java:1335) at androidx.fragment.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:196) at com.frran.ui.adapter.HomeMenuPagerAdapter.instantiateItem(HomeMenuPagerAdapter.java:106) at com.frran.ui.custom.viewpager.PagerAdapterWrapper.instantiateItem(PagerAdapterWrapper.java:56) at com.frran.ui.custom.viewpager.RtlViewPager$ReverseAdapter.instantiateItem(RtlViewPager.java:192) at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1224) at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:669) at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:631) at androidx.viewpager.widget.ViewPager.setCurrentItem(ViewPager.java:623) at com.frran.ui.custom.viewpager.RtlViewPager.setCurrentItem(RtlViewPager.java:74)

Dependencies i am using ->

def fragment_version = "1.4.1"
implementation "androidx.fragment:fragment-ktx:$fragment_version"
implementation "androidx.appcompat:appcompat:1.3.1"

I am using FragmentStatePagerAdapter with default behavior BEHAVIOR_SET_USER_VISIBLE_HINT i think it has something to do with it but i can not find anything to back this up.

Looking at the fragment version 1.4.0 release notes i found FragmentStrictMode is available to debug the fragment . but it clearly says with the default policy it will not anything if disabled and i did not enabled it manually.

Can i get some help on this Since its a Violation logged by FragmentStrictMode do i have to worry about this ? if not how come crashlytics is logging it even if its disabled in release build.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source