java.util.ConcurrentModificationException в действии onCreate

48

В недавнем выпуске, где я добавил MoPub через Admob, я вижу кучу ConcurrentModificationException в журналах сбоев. Кажется, что это все нативный код, и я использую последнюю версию всех библиотек, связанных с рекламой и Google / Android. Кто-нибудь сталкивался с этим раньше?

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)

Вот как выглядит код до строки 21 BaseActivity:

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

Вот как выглядит код до строки 70 RecentGameActivity

public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
mburst
источник
1
Мы обнаружили ту же проблему на нескольких телефонах до Android 9. Используете ли вы Firebase Analytics? Если да, то какая версия?
Farasy
Возникла та же проблема после того, как я обновил зависимости.
Tearsdontfalls
1
@Farasy Да, я часто вижу это и на Android 9, хотя на других версиях есть несколько пользователей. Я использую Firebase Analytics com.google.firebase: firebase-core: 17.2.2
mburst
У кого-нибудь есть идея или сценарий для создания этого сбоя?
Бхавен Шах

Ответы:

22

В нашем случае мы видим только сбой с

com.google.firebase:firebase-analytics:17.2.2 

возврат к 17.2.1 исправил проблему

Это также происходит, если вы используете firebase-core: 17.2.2, потому что firebase-analytics - это та же библиотека, которая была переименована. Примите во внимание, что согласно официальным документам текущее использование ядра Firebase не рекомендуется -> https://firebase.google.com/support/release-notes/android#latest_sdk_versions

Пабло А. Мартинес
источник
Возвращение firebase-analytics к 17.2.1 решило нашу проблему. Спасибо!
Jaydipsinh Zala
Возвращение firebase-analytics к 17.2.1 не устранило проблему для нас. Мы использовали 17.2.1какое-то время и не видели этих сбоев. Я сомневаюсь, что авария вообще связана с firebase-analyticsбиблиотекой.
Мануэль
1
Спасибо за внимание. Я только что выпустил версию с 17.2.1.
Обновится,
Исправление: мы вернули firebase-analytics к 17.2.1, но оставили ядро ​​firebase без изменений на 17.2.2 и все еще получали сбои. Затем мы выпустили версию с ядром, вернувшимся к 17.2.1, и до сих пор не было сбоев. (Я не уверен, что firebase-core все еще нужен?)
Мануэль
@ PabloA.Martínez Хорошо, мы не видели сбоев в 17.2.1 с момента возврата как основных, так и аналитических библиотек. Вы случайно не знаете, с какой версии ядро ​​устарело? Я не мог найти ссылку на это.
Мануэль
20

Верните свою библиотеку Firebase Core в:

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

Я видел этот сбой как в 17.2.1, так и в 17.2.2, но после возврата к 17.1.0 все было в порядке.

Я сообщил об ошибке здесь: https://firebase.google.com/support/troubleshooter/report/bugs

Обновить

Спасибо @ Sébastien, возврат к v17.2.0 также должен работать:

implementation 'com.google.firebase:firebase-core:17.2.0'
Джим
источник
2
В примечаниях к выпуску Firebase ( firebase.google.com/support/release-notes/android ) говорится, что ядро ​​firebase нужно заменить на firebase-analytics или библиотеки, которые мы используем. Вы пробовали это решение?
Аделино
2
Я думаю, что оба почти идентичны, кроме названия. Мы обнаружили эту проблему при обновлении с com.google.firebase: firebase-analytics: 17.1.0 до 17.2.2
Farasy
@Farasy спасибо за ответ, я верну зависимость: |
Аделино
1
Спасибо, Джим. Пожалуйста, держите нас в курсе. Кажется, com.google.firebase:firebase-core:17.2.0это также освобождает от ошибки.
Себастьян
1
Версия 17.2.1 также работает, мы никогда не наблюдали сбой в этой версии, только после обновления до 17.2.2.
Мануэль
6

Мы определили проблему и работаем над исправлением для следующего выпуска SDK.

Эрик Берли
источник
Мы сталкиваемся с той же проблемой. Пожалуйста, дайте нам знать о прогрессе в исправлении этого.
Qbit
3
это исправлено с 17.2.3?
neobie
2
@Qbit это исправлено на 17.2.3. firebase.google.com/support/release-notes/…
Синан Джейлан
Обнаружил эту проблему снова на «com.google.firebase: firebase-analytics: 17.4.0».
Джон
Джон - у вас есть трассировка стека для этого случая?
Эрик Берли
0

Недавно мы столкнулись с подобной проблемой. Ошибка в адаптере Unity Ads для посредника Admob.

Вот наш файл 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'

Ошибка в консоли 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)

Эта проблема снова связана с пожарной базой?

ОБНОВИТЬ

Похоже, проблема в этот раз в адаптере UnityAds: https://developers.google.com/admob/android/mediation/unity#version-3.4.2.2

denri11
источник