Skip to content

JankStatsActivityLifecycleListener.onActivityStopped -  #1976

Description

@MattFoley

Hi, I'm seeing the following crash happen for a little more than 12% of my users on the 2.5.0 version of the SDK. I upgraded from 1.14.0 of the SDK before that, so I'm not sure when this was introduced. I will attempt to fix by upgrading to an even newer version of the SDK.

Stack trace

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at android.view.View.findFrameMetricsObserver(View.java:7279)
at android.view.View.removeFrameMetricsListener(View.java:7250)
at android.view.Window.removeOnFrameMetricsAvailableListener(Window.java:886)
at androidx.metrics.performance.DelegatingFrameMetricsListener.remove(JankStatsApi24Impl.kt:253)
at androidx.metrics.performance.JankStatsApi24Impl.removeFrameMetricsListenerDelegate(JankStatsApi24Impl.kt:126)
at androidx.metrics.performance.JankStatsApi24Impl.setupFrameTimer(JankStatsApi24Impl.kt:107)
at androidx.metrics.performance.JankStats.setTrackingEnabled(JankStats.kt:129)
at com.datadog.android.rum.internal.vitals.JankStatsActivityLifecycleListener.onActivityStopped(JankStatsActivityLifecycleListener.kt:103)
at android.app.Application.dispatchActivityStopped(Application.java:282)
at android.app.Activity.onStop(Activity.java:1984)
at com.unity3d.player.UnityPlayerActivity.onStop(UnityPlayerActivity.java:78)
at com.skillz.activity.UnityGameActivity.onStop(UnityGameActivity.java:2)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1432)
at android.app.Activity.performStop(Activity.java:7653)
at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:4402)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4380)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4455)
at android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:41)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

Reproduction steps

I'm unsure of the steps to reproduce this yet, but

Volume

10% or more.

Affected SDK versions

2.5.0

Latest working SDK version

1.14.0

Does the crash manifest in the latest SDK version?

Yes

Kotlin / Java version

Java 18

Gradle / AGP version

Gradle Wrapper 8.3

Other dependencies versions

No response

Device Information

No response

Other relevant information

No response

Metadata

Metadata

Assignees

Labels

crashSDK induced crash

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions