Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.util.ConcurrentModificationException in activity onCreate

In a recent release where I added MoPub via Admob ad mediation I am seeing a bunch of ConcurrentModificationException in crash logs. It all seems to be native code and I am on the latest version of all ad related and google/android related libraries. Anyone run in to this before?

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) 

This is what the code looks like up to line 21 of BaseActivity:

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

This is what the code looks like up to line 70 of RecentGameActivity

public class RecentGameActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState); 
like image 625
mburst Avatar asked Jan 26 '20 07:01

mburst


People also ask

How do I overcome Java Util ConcurrentModificationException?

How do you fix Java's ConcurrentModificationException? There are two basic approaches: Do not make any changes to a collection while an Iterator loops through it. If you can't stop the underlying collection from being modified during iteration, create a clone of the target data structure and iterate through the clone.

What is ConcurrentModificationException null?

concurrentmodificationexception is an error in Java. The error occurs when the iterator is traversing a list, and a command is used to change an element's value during that traversal.

Why does concurrent modification exception occur?

What Causes ConcurrentModificationException. The ConcurrentModificationException generally occurs when working with Java Collections. The Collection classes in Java are very fail-fast and if they are attempted to be modified while a thread is iterating over it, a ConcurrentModificationException is thrown.


Video Answer


2 Answers

In our case, we are only seeing the crash with

com.google.firebase:firebase-analytics:17.2.2  

reverting to 17.2.1 has fixed the problem

This happens too if you are using firebase-core:17.2.2, because firebase-analytics is the same library rebranded. Take into account that as per official docs, current usage of firebase-core is deprecated -> https://firebase.google.com/support/release-notes/android#latest_sdk_versions

like image 191
Pablo A. Martínez Avatar answered Sep 28 '22 00:09

Pablo A. Martínez


Revert your Firebase Core library to:

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

I've seen this crash on both v17.2.1 and v17.2.2, but since reverting to 17.1.0 all has been fine.

I've reported the bug here: https://firebase.google.com/support/troubleshooter/report/bugs

Update

Thanks @Sébastien, reverting to v17.2.0 should also work:

implementation 'com.google.firebase:firebase-core:17.2.0' 
like image 41
Jim Avatar answered Sep 28 '22 00:09

Jim