Avoir un crash dans Crashlytics que je ne peux pas reproduire et je ne sais pas où il se produit. Affichage de tous les journaux reçus ci-dessous.ConcurrentModificationException - Impossible de démarrer l'activité
Fatal Exception: java.lang.RuntimeException
Unable to start activity ComponentInfo{.main.MainActivity}: java.util.ConcurrentModificationException
Caused by java.util.ConcurrentModificationException
java.util.ArrayList$ArrayListIterator.next (ArrayList.java:573)
android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.restoreInstanceState (NavigationMenuPresenter.java:587)
android.support.design.internal.NavigationMenuPresenter.onRestoreInstanceState (NavigationMenuPresenter.java:191)
Comme vous pouvez le voir sur les journaux NavigationMenuPresenter et NavigationMenuAdapter sont les classes android.support.design.internal. D'après les noms de cela ressemble à quelque chose à voir avec le menu Navigation Drawer et certains ArrayList (corrigez-moi si je me trompe). Y a-t-il une erreur lors de la tentative de restauration de l'état du menu?
est ici le code pour la création de menu de navigation
private void setupDrawer(Toolbar toolbar) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
initAvailabilityChange(navigationView);
initMenuHeaderViews(navigationView);
}
private void initAvailabilityChange(NavigationView navigationView) {
switchItem = navigationView.getMenu().findItem(R.id.availability);
CompoundButton switchView = (CompoundButton) MenuItemCompat.getActionView(switchItem);
switchNew = (Switch) switchView.findViewById(R.id.switchLocation);
switchView.setOnCheckedChangeListener((buttonView, isChecked) -> {
isOnShift = isChecked;
presenter.onAvailabilityChange(isOnShift, this);
if (isChecked) {
switchItem.setTitle(R.string.availability_on_shift);
} else {
switchItem.setTitle(R.string.availability_off_shift);
}
});
}
private void initMenuHeaderViews(NavigationView navigationView) {
View header = navigationView.getHeaderView(0);
tvName = (TextView) header.findViewById(R.id.tvName);
tvRank = (TextView) header.findViewById(R.id.tvRank);
}
serait vraiment reconnaissant pour toute aide.
Vous devez rechercher dans votre code, où vous parcourez une ArrayList et modifiez les éléments de la boucle. Et partager ce code, et nous vous aiderons :) –
S'il vous plaît ajouter le code autour de 'NavigationMenuPresenter.java: 587' à votre message – torkleyy
pouvez-vous partager votre code dans' onRestoreInstanceState() '? – hsl