Quand j'ai essayé de stocker la classe AAA Serializable dans un ArrayList et de l'écrire dans un fichier, j'ai obtenu une NotSerializableException. (Bien sûr, tous les champs AAA sont également sérialisables)
Le code à ce moment-là est le suivant. (Veuillez me pardonner que le code est que ...)
Navigator.java
public class Navigator {
AppCompatActivity activity;
public void navigateToFuga(ArrayList<AAA> list) {
// FugaActivity.Créer une intention dans createIntent
//Écrivez des hoges dans un fichier et compressez le chemin du fichier dans une intention
activity.startActivity(FugaActivity.createIntent(activity, list));
}
}
HogeActivity.java
public void go() {
navigator.navigateToFuga(new ArrayList<AAA>(){{
add(bbb.aaa);
}});
}
J'ai réécrit le code comme suit:
HogeActivity.java
public void go() {
ArrayList<AAA> list = new ArrayList();
list.add(bbb.aaa);
navigator.navigateToFuga(list);
}
Je fais souvent des choses comme l'emballage de données dans l'intention pour la transition d'écran de l'activité. L'application a planté car j'ai mis une grande quantité de données inattendues dans l'intention. Donc, j'ai temporairement répondu par la méthode ci-dessus, mais j'étais en difficulté avec une exception. En regardant le débogueur,
FugaActivity.Le type de données de ArrayList reçu par createIntent est HogeActivity$C'était quelque chose comme 1, alors j'ai pensé que c'était une erreur et je l'ai corrigée, et cela a fonctionné.
Il a fallu plusieurs heures pour le résoudre, je dois donc éviter de me retrouver avec le même problème à l'avenir.
Je l'ai écrit dans l'article car il semble que personne ne souffre de la même cause même si je le vérifie avec NotSerializableException, mais je me demande comment je dois le vérifier. .. ..
Recommended Posts