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:
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