There was an ANR in my Android app, but a few days later Yandex Mobile Ads started to actively crash messing up my statistics:

The crash happened 65 times and affected 35 users on various devices:

Judging by the stack trace, they try to access an element of a JSON array that probably does not exist:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | Sample attributes: HUAWEI HWJMM (honor 6C Pro) Android 7.0 (SDK 24) Version: 299 (2.7.64) Occurred: 24 hours ago Type java.lang.RuntimeException Exception java.lang.RuntimeException: at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2871) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2946) at android.app.ActivityThread.-wrap12 (ActivityThread.java) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1634) at android.os.Handler.dispatchMessage (Handler.java:113) at android.os.Looper.loop (Looper.java:205) at android.app.ActivityThread.main (ActivityThread.java:6783) at java.lang.reflect.Method.invoke at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1225) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1086) Caused by org.json.JSONException: Value at 4 is null. at org.json.JSONArray.get (JSONArray.java:289) at com.yandex.mobile.ads.impl.vo.a (SourceFile:18) at com.yandex.mobile.ads.impl.vo.a (SourceFile:16) at com.yandex.mobile.ads.impl.vo.a (SourceFile:19) at com.yandex.mobile.ads.impl.vo.a (SourceFile:16) at com.yandex.mobile.ads.impl.vo.a (SourceFile:15) at com.yandex.mobile.ads.impl.vo.a (SourceFile:19) at com.yandex.mobile.ads.impl.vo.a (SourceFile:16) at com.yandex.mobile.ads.impl.vo.a (SourceFile:4) at com.yandex.mobile.ads.impl.vo$b.invoke (SourceFile:22) at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator (Sequences.kt:315) at kotlin.sequences.FlatteningSequence$iterator$1.hasNext (Sequences.kt:303) at kotlin.sequences.TransformingSequence$iterator$1.hasNext (Sequences.kt:214) at kotlin.sequences.FilteringSequence$iterator$1.calcNext (Sequences.kt:169) at kotlin.sequences.FilteringSequence$iterator$1.hasNext (Sequences.kt:194) at kotlin.sequences.SequencesKt___SequencesKt.toCollection (_Sequences.kt:786) at kotlin.sequences.SequencesKt___SequencesKt.toSet (_Sequences.kt:827) at com.yandex.mobile.ads.impl.vo.a (SourceFile:8) at com.yandex.mobile.ads.impl.lg0.<init> (SourceFile:7) at com.yandex.mobile.ads.impl.lg0.<init> (SourceFile:1) at com.yandex.mobile.ads.impl.tv.<init> (SourceFile:6) at com.yandex.mobile.ads.impl.xo.a (SourceFile:4) at com.yandex.mobile.ads.impl.wv.a (SourceFile:13) at com.yandex.mobile.ads.impl.w0.<init> (SourceFile:19) at com.yandex.mobile.ads.impl.t0.a (SourceFile:20) at com.yandex.mobile.ads.impl.n0.a (SourceFile:16) at com.yandex.mobile.ads.common.AdActivity.onCreate (SourceFile:12) at android.app.Activity.performCreate (Activity.java:6912) at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2824) |
AdMob => Yandex Ad:
https://support-mobile-ads.docs-viewer.yandex.ru/ru/support/migration/admob-ya-ads-android-java