J'utilise des cartes Maps pour créer une application Android simple et je reçois une erreur bizarre que je ne peux pas résoudre. Il arrive généralement lorsque je fais pivoter mon appareil. J'utilise Google Services 8.4.0
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar android:background="?attr/colorPrimary" android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:minHeight="?attr/actionBarSize" android:layout_width="match_parent" android:layout_alignParentStart="true" android:elevation="4dp" app:popupTheme="@style/AppTheme.PopupOverlay" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> </android.support.v7.widget.Toolbar>
4 Réponses :
Lors de la rotation, votre La solution consiste à ne pas nier la barre d'outils code> - ou tout autre supportfragment code> est détruit et recréé. Avant de les détruire, il écrit son état actuel à un colis code> code>, à utiliser pour restaurer son état lorsqu'il est recréé. L'état enregistré code> fragment code> inclura l'état de son enfant
Affichage code> S, et puisque vous avez nié une barre d'outils
code> dans laquelle elle tente pour sauver et restaurer cela aussi. La classe d'outils code> ne dispose pas d'une classe interne
sauvegardée code> nécessaire pour cela, ce processus échoue lorsque vous essayez de restaurer la barre d'outils code> à partir du
Colis code>. P>
code>, pour cette affaire - dans le
groupe de vue code>; Par exemple, un
linearlayout vertical code> ou un
relativelayoutout code>. p>
changer d'activité_map.xml à cela a fonctionné, merci encore Mike.
<?xml version="1.0" encoding="utf-8" ?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <fragment xmlns:map="http://schemas.android.com/apk/res-auto" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent"> </fragment> </RelativeLayout>
Je n'ai pas aimé avoir fourni des solutions telles que l'imposition sur mes mises en page et mon architecture.
Voici ce que j'ai fait pour le faire fonctionner. Si vous regardez votre stackTrace, la classe NoteNotFoundException provient de la ligne sur Googlemaps. Donc, si nous résolvons cela, la question est partie. P>
Googlemaps Pukes / Jetez une erreur lorsque le sauvegardé -stansetate a d'autres éléments de celui-ci en plus de sa propre. La solution consiste à donner des googlemaps à son propre paquet dédié. P>
// class property private static final String KEY_MAP_SAVED_STATE = "mapState"; // class methods @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mapView = findMapView(); // make your own method here Bundle mapState = (savedInstanceState != null) ? savedInstanceState.getBundle(KEY_MAP_SAVED_STATE): null; mapView.onCreate(mapState); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Bundle mapState = new Bundle(); mapView.onSaveInstanceState(mapState); outState.putBundle(KEY_MAP_SAVED_STATE, mapState); }
D'accord. J'ai le même problème, mais dans ce cas, la défaillance est causée par: android.os.badparcelableException: classnotfoundexception lors de la mise à jour: android.support.v7.widget.recyClerview $ sauvéState code>. Mon RecyclerVoir est déjà arrivé sur un
Cela a parfaitement fonctionné pour avoir sauvegarder mon problème avec une erreur de classnotfoundexception lors de la mise à la fois: Android.Support.v7.widget.RecyClerview $ Savedstate. +2 pour ne pas avoir besoin de changer mes mises en page.
J'ai eu un problème similaire avec ma vue personnalisée et trouvé Cette solution.
J'ai remarqué que ce crash s'est produit lorsque j'ai prolongé RecyclerView Strong> ou AppComPatspinner Strong> et nécessaire pour sauver l'état. Le crash se produira probablement pour d'autres points de vue aussi. Fondamentalement, le crash est causé par un bogue en absachedstate comme mentionné ici .
Et l'accident ne se produit que lorsque le constructeur du sauvegardé est appelé sans chargeur de classe. Il semblait que c'était une affaire ancienne, mais j'ai commencé à obtenir des rapports d'accident pour Android 9 et 10. p> de sorte que le correctif devait changer: p> à : p> édition forte>
J'étais sur la bonne voie, mais je regardais alors un Code Android et a découvert qu'il existait un constructeur manquant qui a causé l'accident. J'ai donc eu le constructeur suivant pour le SavedState: p> et je devais ajouter ce qui suit: p> puis Je devais changer le créateur: p>
Je suppose que c'est parce que vous avez la barre d'outils code> imbriquée dans la carte
fragment code>, qui est inhabituel. Essayez de tirer le code> hors du code> et mettez-les à la fois dans un autre
groupe de vue code>; E.G., un
linearlayout code> ou un
relativelayoutout code>.
@Mikem. Merci. Mettre les deux dans une relativation fonctionne comme un charme. Vous devriez poster cela comme une réponse pour que je puisse l'accepter.
Quelle est la version Android? Cela ne s'est passé que dans l'API 10. Parce que j'ai déjà eu cette erreur et je ne suis toujours pas corrigé.
J'utilisais API 23, la solution de Mike a travaillé.