stellen Sie sicher, Klasse name vorhanden ist, ist öffentlich und hat einen leeren Konstruktor für den öffentlichen fragment mit Klassenname und Konstruktor
Ich habe gerade eine crash-Bericht von einem der Benutzer mit der folgenden Fehler-trace :
Unable to instantiate fragment packageName.Wizard$WizardFirstPage: make sure class name exists, is public, and has an empty constructor that is public
Hier sind die Klassen-Deklarationen :
public class Wizard extends Other
public abstract class Other extends BaseActivity
public abstract class BaseActivity extends ActionBarActivity
Alle Klassen öffentlich benannt-und nicht Benutzer-definierten Konstruktor.
Als für das fragment WizardFirstPage
: (definiert in Wizard
)
public class WizardFirstPage extends Fragment
Keinen benutzerdefinierten Konstruktor entweder.
Was bin ich ?
- fügen Sie das Schlüsselwort static.
public static class WizardFirstPage extends Fragment
, fix alle Ihre compile-Zeit Fehler, und führen Sie es erneut - sollten alle inneren Fragmente statisch sein ? (es ist Laufzeitfehler BTW)
- ja, Sie werden als statisch deklariert
- OK. danke!!!
- Sie sind herzlich willkommen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist eine innere Klasse von
packageName.Wizard
. Das wird nur funktionieren, wenn die Klasse deklariert ist, wiestatic
wie angegeben mit Blackbelt:Wenn die
Wizard
Aktivität erfährt eine Konfiguration ändern, oder neu erstellt nach Beendigung des Prozesses, Android versuchen, erstellen Sie eine Instanz derWizard$WizardFirstPage
. Mit Ihrem aktuellen Ansatz, Android kann dies nicht tun, da nur Instanzen vonWizard
erstellen können Instanzen vonWizard$WizardFirstPage
. ÄndernWizardFirstPage
zustatic
wird dieses Problem beheben.