Ich erstelle eine Android-App, für die ich meine erste Aktivität aus zwei Tabs zusammenstellen möchte, eine für das Profil des Nutzers und eine für die Aktivitäten der Freunde. Für diese Tabs habe ich mich für einen TabHost entschieden, da meine Sherlock-Aktionsleiste bereits die Listennavigation verwendet, um zu anderen Aktivitäten zu wechseln, sodass ich die Tab-Navigation nicht über die Aktionsleiste verwenden kann.
Die App hat eine Weile funktioniert, aber jetzt funktioniert nur eine meiner Registerkarten. Sobald ich versuche, auf die zweite Registerkarte zu wechseln, erhalte ich eine java.lang.IllegalStateException: No activity
Ich habe die Logcat-Ausgabe für diesen Fehler hinzugefügt, obwohl ich mir nicht sicher bin, ob es hilfreich ist, da es keine Rückverfolgung zu meinem Code gibt.
Ich habe versucht, den TabHost durch einen FragmentTabHost zu ersetzen, aber der Fehler besteht weiterhin ...
Kann mir jemand bitte auf den Ursprung / die Bedeutung dieses Fehlers hinweisen? Vielen Dank im Voraus!
LOGCAT:
%Vor%AKTIVITÄT
%Vor%ANDROID MANIFEST
%Vor% Endlich herausgefunden, worum es ging: Der Absturz "keine Aktivität" war darauf zurückzuführen, dass ich ein falsches FragmentManager
verwendet habe, um Fragmente zu verschachteln.
Bei verschachtelten Fragmenten ist das einzige gültige FragmentManager
dasjenige, das in dem enthaltenden Fragment erhalten wird, indem getChildFragmentManager()
.
Ich habe diesen Fehler auch bekommen. Schließlich fand ich heraus, dass ich die Methoden onResume () onStop () falsch
überschreiben %Vor%Es wurde in
geändert %Vor%So dumme Fehler: P
Sie müssen festlegen, dass die Transaktion festgeschrieben wird, nachdem der Status einer Aktivität gespeichert wurde ...
Verwenden Sie ft.commitAllowingStateLoss()
anstelle von ft.commit()
Das wird Ihr Problem lösen.
Ich habe ein Fragment in myActivity.onCreate()
erstellt, indem ich Folgendes aufgerufen habe:
Beim Ansehen meiner App würde ich den Power-Off-Knopf drücken und dann würde die App abstürzen. Wenn das Gerät ausgeschaltet wird, werden die Aktivitäts- und Fragmentstatus anscheinend gespeichert, getrennt und dann onCreate()
und onCreateView()
für die Fragmente aufgerufen. In diesem Zustand kann .remove(frag)
nicht aufgerufen werden, andernfalls wird Folgendes ausgelöst:
illegaler Status: keine Aktivität
Also, ich habe gerade .remove(frag)
gelöscht und alles funktioniert wieder.
In meinem Fall benutze ich einen Begrüßungsbildschirm und ich hatte MainLauncher = true in der MainActivity.
Tags und Links android android-fragments android-tabhost