sensorsdata/sa-sdk-android

FragmentViewScreenCallbacks在开启fragment采集时的空指针问题

Closed this issue · 2 comments

image
如下依赖,集成神策自动采集插件与SDK到最新版本
classpath 'com.sensorsdata.analytics.android:android-gradle-plugin2:3.5.2'
implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.5.3'
FragmentViewScreenCallbacks Line194获取fragment对应Activity,在Fragment创建并可见时可能导致空指针,堆栈信息如下:

E/SA.Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference at com.sensorsdata.analytics.android.autotrack.core.autotrack.FragmentViewScreenCallbacks.isFragmentValid(FragmentViewScreenCallbacks.java:194) at com.sensorsdata.analytics.android.autotrack.core.autotrack.FragmentViewScreenCallbacks.setUserVisibleHint(FragmentViewScreenCallbacks.java:153) at com.sensorsdata.analytics.android.autotrack.aop.FragmentTrackHelper.trackFragmentSetUserVisibleHint(FragmentTrackHelper.java:102) at com.smwl.x7market.component_base.fragment.BaseFragment.setUserVisibleHint(BaseFragment.java:112) at com.smwl.x7market.fragment.MainModuleBaseFrag.setUserVisibleHint(Unknown Source:11) at com.smwl.x7market.fragment.main.MainSelectPositionFrag.setUserVisibleHint(MainSelectPositionFrag.java:186) at androidx.fragment.app.FragmentStatePagerAdapter.setPrimaryItem(FragmentStatePagerAdapter.java:256) at com.smwl.x7market.adapter.MainSelectFragAdapter.setPrimaryItem(MainSelectFragAdapter.java:150) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1234) 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.smwl.x7market.fragment.SelectFragment2$1.lambda$getTitleView$264$SelectFragment2$1(SelectFragment2.java:326) at com.smwl.x7market.fragment.-$$Lambda$SelectFragment2$1$-gYxpJPJwc9vFNEBe-JQfLuqnxQ.onClick(Unknown Source:6) at android.view.View.performClick(View.java:7317) at android.view.View.performClickInternal(View.java:7291) at android.view.View.access$3600(View.java:838) at android.view.View$PerformClick.run(View.java:28247) at android.os.Handler.handleCallback(Handler.java:900) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:219) at android.app.ActivityThread.main(ActivityThread.java:8668) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)

@Lvcherry 目前该问题已经修复,等待 QA 测试发布版本。