2010-08-20 16 views
47

La mia app Android ha 2 attività. Una schermata di accesso e una schermata di ricerca. Quando distribuisco l'app sull'emulatore o sul mio dispositivo, vedo 2 icone per la stessa app. Quando clicco sull'icona 1, si apre la schermata 1 (schermata di accesso) e quando clicco sull'icona 2 si apre la schermata 2 (schermata di ricerca). Da logica quando accedo dovrebbe mostrare la schermata di ricerca. Non sono sicuro quando sto facendo l'errore, sarebbe di aiuto se qualcuno mi può indirizzare nella giusta direzione.Attività Android App installate come icone multiple

Saluti, Aravind. C

risposta

71

Il file manifest deve avere solo questa linea nell'attività si desidera avere un'icona:

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

Sulla base della sua descrizione, suona come entrambe le attività hanno questa linea.

+6

'PRINCIPALE' non è una categoria; è un'azione. Più in generale, non includere un '' per un'attività nel manifest a meno che non ne abbiate bisogno. Per le app semplici, solo l'attività che richiede un'icona nel launcher deve avere un ''. – CommonsWare

+0

Ciao Aaron, Grazie mille per il rapido ripristino. Sì, questo era il problema e l'app funziona come previsto. Grazie ancora. Saluti, Aravind. C –

+2

Dovresti controllare anche manifest per i progetti bibliografici referenziati –

16

Nel file mainfest quando si segue il tag in due tag di attività diversi al momento, l'app Android sembra essere installata due volte.

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

Ho lo stesso problema perché ho incluso una libreria come dipendenza del progetto, il cui AndroidManifest.xml conteneva una definizione del filtro di intent -> L'ho rimosso e tutto ha iniziato a funzionare correttamente! – notsoux

+1

In realtà, ho questo in due diverse attività, perché voglio che ognuno si comporti come un'app indipendente. Funziona come desiderato Ho provato con "CREATE_SHORTCUT", ma il collegamento non rimane nella schermata principale. –

2

Il commento fatto da @Adrian C sulla sua risposta ha risolto il nostro problema.

Il file manifest della nostra applicazione principale aveva un solo tag intent-filter che specificava solo un'attività come attività di avvio dell'applicazione.

così ho dovuto guardare più in profondità ...

Sono stati inclusi i progetti di libreria (per fortuna scritto da noi) e il file manifesto di uno dei progetti di biblioteca ha avuto un intent-filter tag su sua attività specificando che l'attività come il lanciatore attività.

Quando abbiamo quindi incluso quel progetto biblioteca nella nostra applicazione principale (che ha il suo intent-filter specificando un'attività lanciatore), il codice sorgente completo vide due intent-filter tag che specificano due attività come attività di lancio e quindi sono state create due icone delle applicazioni.

Quando abbiamo rimosso intent-filter specificando un'attività di avvio nel progetto di libreria, la seconda icona di avvio app è scomparsa.

Problemi correlati