java.util.ConcurrentModificationException dans l'activité onCreate

48

Dans une version récente où j'ai ajouté MoPub via la médiation publicitaire Admob, je vois un tas d'exceptions ConcurrentModificationException dans les journaux de plantage. Tout semble être du code natif et je suis sur la dernière version de toutes les bibliothèques liées à la publicité et à Google / Android. Quelqu'un a rencontré ça avant?

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3121)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3264)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1955)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7078)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:964)
Caused by: java.util.ConcurrentModificationException: 
  at androidx.c.g.put (SimpleArrayMap.java:482)
  at com.google.android.gms.measurement.internal.hs.a
  at com.google.android.gms.measurement.internal.hi.onActivityCreated
  at android.app.Application.dispatchActivityCreated (Application.java:245)
  at android.app.Activity.onCreate (Activity.java:1108)
  at androidx.core.app.e.onCreate (ComponentActivity.java:81)
  at androidx.activity.b.onCreate (ComponentActivity.java:149)
  at androidx.fragment.app.c.onCreate (FragmentActivity.java:313)
  at androidx.appcompat.app.e.onCreate (AppCompatActivity.java:106)
  at com.teamtol.livedota.BaseActivity.onCreate (BaseActivity.java:21)
  at com.teamtol.livedota.RecentGameActivity.onCreate (RecentGameActivity.java:70)
  at android.app.Activity.performCreate (Activity.java:7327)
  at android.app.Activity.performCreate (Activity.java:7318)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1275)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3101)

Voici à quoi ressemble le code jusqu'à la ligne 21 de BaseActivity:

protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
        super.onCreate(savedInstanceState);

Voici à quoi ressemble le code jusqu'à la ligne 70 de RecentGameActivity

public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
mburst
la source
1
Nous avons trouvé le même problème sur plusieurs téléphones jusqu'à Android 9. Utilisez-vous Firebase Analytics? Si oui, quelle version?
Farasy
Avoir le même problème après avoir mis à niveau les dépendances.
Tearsdontfalls
1
@Farasy Yea Je le vois aussi beaucoup sur Android 9, bien que quelques utilisateurs sur d'autres versions. J'utilise Firebase Analytics com.google.firebase: firebase-core: 17.2.2
mburst le
quelqu'un a une idée ou un scénario pour générer ce crash?
Bhaven Shah

Réponses:

22

Dans notre cas, nous ne voyons que le crash avec

com.google.firebase:firebase-analytics:17.2.2 

le retour à 17.2.1 a résolu le problème

Cela se produit également si vous utilisez firebase-core: 17.2.2, car firebase-analytics est la même bibliothèque renommée. Tenez compte du fait que, selon les documents officiels, l'utilisation actuelle de firebase-core est déconseillée -> https://firebase.google.com/support/release-notes/android#latest_sdk_versions

Pablo A. Martínez
la source
Le retour de Firebase-Analytics à 17.2.1 a résolu notre problème. Merci!
Jaydipsinh Zala
Le retour de Firebase-Analytics à 17.2.1 n'a pas résolu le problème pour nous. Nous utilisons 17.2.1depuis un certain temps et n'avons pas vu ces plantages. Je doute que l'accident soit lié à la firebase-analyticsbibliothèque.
Manuel
1
Merci pour l'information. Je viens de publier une version avec 17.2.1. Mettra à jour une fois qu'il aura eu le temps entre les mains des utilisateurs
mburst
Correction: nous sommes revenus à Firebase-analytics à 17.2.1 mais avons laissé Firebase-core inchangé à 17.2.2 et recevions toujours des plantages. Nous avons ensuite publié une version avec core également revenue à 17.2.1 et aucun crash jusqu'à présent. (Je ne suis pas sûr que Firebase-core soit toujours nécessaire?)
Manuel
@ PabloA.Martínez Bien, nous n'avons vu aucun plantage sur 17.2.1 depuis la restauration des bibliothèques de base et d'analyse. Savez-vous par hasard depuis quelle version le noyau est déconseillé? Je n'ai pas pu trouver de référence à cela.
Manuel
20

Rétablissez votre bibliothèque Firebase Core pour:

implementation 'com.google.firebase:firebase-core:17.1.0'

J'ai vu ce plantage sur v17.2.1 et v17.2.2, mais depuis le retour à 17.1.0, tout s'est bien passé.

J'ai signalé le bogue ici: https://firebase.google.com/support/troubleshooter/report/bugs

Mise à jour

Merci @ Sébastien, le retour à la v17.2.0 devrait également fonctionner:

implementation 'com.google.firebase:firebase-core:17.2.0'
Jim
la source
2
Dans les notes de version de Firebase ( firebase.google.com/support/release-notes/android ), ils disent de remplacer le firebase-core par firebase-analytics ou les bibliothèques que nous utilisons. Avez-vous essayé cette solution?
Adelino
2
Je suppose que les deux sont presque identiques sauf le titre. Nous avons trouvé ce problème lors de la mise à niveau de com.google.firebase: firebase-analytics: 17.1.0 à 17.2.2
Farasy
@Farasy merci pour la réponse, je reviendrai sur la dépendance: |
Adelino
1
Merci @Jim. S'il-vous-plaît nous garder en alertes. Il semble que com.google.firebase:firebase-core:17.2.0soit également exempt du bug.
Sébastien
1
La version 17.2.1 fonctionne également, nous n'avons jamais observé de plantage sur cette version, seulement après la mise à niveau vers 17.2.2.
Manuel
6

Nous avons identifié le problème et travaillons sur un correctif pour la prochaine version du SDK.

Eric Burley
la source
Nous sommes confrontés au même problème. Veuillez nous informer des progrès réalisés pour résoudre ce problème.
Qbit
3
est-il corrigé avec 17.2.3?
neobie
2
@Qbit, il est fixé sur 17.2.3. firebase.google.com/support/release-notes/…
Sinan Ceylan
J'ai à nouveau trouvé ce problème sur "com.google.firebase: firebase-analytics: 17.4.0".
John
John - avez-vous une trace de pile pour cet événement?
Eric Burley il y a
0

Nous avons récemment rencontré un problème similaire. Erreur dans l'adaptateur Unity Ads pour la médiation Admob.

Voici notre fichier build.gradle:

implementation 'com.google.android.gms:play-services-ads:19.1.0'
implementation 'com.google.ads.mediation:unity:3.4.2.1'
implementation 'com.google.ads.mediation:vungle:6.5.3.0'
implementation 'com.google.ads.mediation:chartboost:7.5.0.0'
implementation 'com.google.ads.mediation:mytarget:5.6.3.0'
implementation 'com.yandex.android:mobmetricalib:3.13.1'
implementation 'com.yandex.android:mobileads:2.142'
implementation 'com.yandex.ads.adapter:admob-mobileads:0.3.0'

implementation 'com.google.android.gms:play-services-games:19.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'

implementation 'com.google.firebase:firebase-analytics:17.3.0'
implementation 'com.google.firebase:firebase-dynamic-links:19.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

implementation 'com.google.android.play:core:1.7.2'
implementation 'androidx.multidex:multidex:2.0.1'

Erreur dans la console Google Play:

java.util.ConcurrentModificationException: 
  at java.util.HashMap$HashIterator.nextNode (HashMap.java:1453)
  at java.util.HashMap$EntryIterator.next (HashMap.java:1487)
  at java.util.HashMap$EntryIterator.next (HashMap.java:1485)
  at com.google.ads.mediation.unity.UnitySingleton$UnitySingletonListener.onUnityAdsError (UnitySingleton.java:227)
  at com.unity3d.services.ads.configuration.AdsModuleConfiguration$3.run (AdsModuleConfiguration.java:92)
  at android.os.Handler.handleCallback (Handler.java:888)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:213)
  at android.app.ActivityThread.main (ActivityThread.java:8178)
  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:1101)

Ce problème est-il à nouveau lié à Firebase?

MISE À JOUR

Il semble que le problème cette fois se trouve dans l'adaptateur UnityAds: https://developers.google.com/admob/android/mediation/unity#version-3.4.2.2

denri11
la source