2010-08-20 15 views
47

Meine Android App hat 2 Aktivitäten. Ein Anmeldebildschirm und ein Suchbildschirm. Wenn ich die App auf dem Emulator oder auf meinem Gerät bereitstelle, sehe ich 2 Symbole für dieselbe App. Wenn ich auf Icon 1 klicke, öffnet sich Bildschirm 1 (Login-Bildschirm) und Wenn ich auf Icon 2 klicke, öffnet sich Bildschirm 2 (Suchbildschirm). Nach der Logik, wenn ich mich anmelde, sollte es den Suchbildschirm anzeigen. Nicht sicher, wenn ich den Fehler mache, wäre hilfreich, wenn jemand mich in die richtige Richtung zeigen könnte.Android App actvities installiert als mehrere Symbole

Grüße, Aravind. C

Antwort

71

Ihre Manifest-Datei sollte nur haben diese Zeile in der Aktivität, die Sie auf ein Symbol haben wollen:

<category android:name="android.intent.category.MAIN" /> 

Basierend auf Ihrer Beschreibung, klingt es wie beide Aktivitäten diese Linie haben.

+6

'MAIN' ist keine Kategorie; es ist eine Aktion. Im Allgemeinen sollten Sie keinen '' für eine Aktivität im Manifest angeben, es sei denn, Sie benötigen eine. Für einfache Anwendungen sollte nur die Aktivität, die ein Symbol im Startprogramm benötigt, einen '' haben. – CommonsWare

+0

Hallo Aaron, Vielen Dank für die schnelle Wiederherstellung. Ja, das war das Problem und die App funktioniert wie beabsichtigt. Danke noch einmal. Grüße, Aravind. C –

+2

Sie sollten auch das Manifest für referenzierte Bibliothek Projekte überprüfen –

16

In Ihrer Mainfest-Datei, wenn Sie das folgende Tag in zwei verschiedenen Aktivitäten Tags zu der Zeit haben, scheint Android-App zweimal installiert zu sein.

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter>  
+4

Ich habe das selbe Problem, weil ich eine Bibliothek als Projektabhängigkeit eingefügt habe, deren AndroidManifest.xml eine Intent-Filterdefinition enthielt -> ich habe sie entfernt und alles hat richtig funktioniert! – notsoux

+1

Eigentlich habe ich das in zwei verschiedenen Aktivitäten, weil ich will, dass sich jede als eigenständige App verhält. Es funktioniert wie gewünscht. Ich habe versucht mit "CREATE_SHORTCUT", aber die Verknüpfung bleibt nicht auf dem Startbildschirm. –

2

Der Kommentar von @Adrian C auf seine Antwort löste unser Problem.

Die Manifestdatei unserer Hauptanwendung hatte nur einen Tag intent-filter, der nur eine Aktivität als Startaktivität für die Anwendung angibt.

Also musste ich tiefer schauen ...

Wir Bibliotheksprojekte enthalten (zum Glück von uns geschrieben) und die Manifest-Datei von einem der Bibliotheksprojekte hatten einen intent-filter Tag auf seiner Aktivität, die Aktivität als Launcher Angabe Aktivität.

Als wir dann dieses Bibliotheksprojekt in unsere Hauptanwendung eingaben (die intent-filter eine Launcher-Aktivität angibt), sah der vollständige Quellcode zwei intent-filter Tags, die zwei Aktivitäten als Startaktivitäten angeben und daher zwei Anwendungssymbole erstellt wurden.

Als wir die intent-filter entfernt haben, die eine Launcher-Aktivität im Bibliotheksprojekt festlegte, verschwand das zweite App-Launcher-Symbol.

Verwandte Themen