Für das Protokoll, da ich ein ähnliches Problem hatte:
ich eine Nachricht hatte „java.io.InvalidClassException: com.example.stuff.FooBar; com.example.stuff.FooBar; kein gültiger Konstruktor“
Ich dachte, es war, weil es einen Standardkonstruktor fehlte. Aber die obigen Antworten bestätigen, dass es nicht zwingend ist (aber unsere App verwendet einen alten Serializer, der tatsächlich einen Standardkonstruktor benötigt, so dass der Fall entstehen kann).
Dann fand ich eine Seite besagt:
Wenn eine Klasse, die für die Vererbung entworfen ist nicht serialisierbar ist, es kann unmöglich sein, eine serializable Unterklasse zu schreiben. Insbesondere ist es unmöglich, wenn die Oberklasse keinen zugänglichen parameterlosen Konstruktor zur Verfügung stellt.
Daher die Nachricht, die ich habe, nehme ich an.Es schien, dass das Kernproblem klassisch war: Ich erklärte eine Klasse als serialisierbar, aber die Oberklasse war nicht! Ich habe die Serializable-Schnittstelle in die Hierarchie verschoben, und alles war gut.
Aber die Botschaft war ein wenig irreführend ... :-)
Danke, ich war die typische Methode der Serialisierung verwenden, aber hatte immer einen leeren Konstruktor geliefert, wie das war, wie ich dachte, es funktioniert. – Pool