2011-01-26 15 views
81

Sto scrivendo un semplice programma di Android, e ricevendo questi errori, non so cosa siano. Il mio programma ha ragione, ma non viene mostrato. Penso che sia a causa di queste due linee:Che cosa significa "Nessuna attività Launcher trovata!"

[2005-01-06 19:56:38 - my_Android] No Launcher activity found! 
[2005-01-06 19:56:38 - my_Android] The launch will only sync the application package on the device! 

risposta

154

Ecco un esempio da AndroidManifest.xml. È necessario specificare il MAIN e LAUNCHER nel filtro intenti per l'attività che si desidera avviare il lancio

<application android:label="@string/app_name" android:icon="@drawable/icon"> 
    <activity android:name="ExampleActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
+6

ma quali sono. MAIN e .LAUNCHER nella mia applicazione ????????? – Veer

+6

Questi appariranno sempre esattamente così, non sono classi nella tua applicazione, sono azioni che stanno accadendo. Allo stesso modo puoi avere un fuoco di attività su altre azioni. per esempio \t \t \t \t \t \t \t \t tribe84

+0

L'aiuto "fondamentalmente" di Android decide cosa fare con l'attività. Vedi la sezione Intent dei documenti – dbryson

6

Significa non è stato specificato un'attività per Android per lanciare come predefinito quando l'applicazione si apre dal lanciatore. Devi aggiungere un filtro intento nel manifesto per l'attività che vorresti comportare come impostazione predefinita all'avvio dell'app.

Leggi http://developer.android.com/guide/topics/intents/intents-filters.html#ccases per ulteriori dettagli.

16

Hai un'attività impostata per essere l'attività avviata all'avvio dell'applicazione?

Questo viene fatto nel file Manifest.xml, qualcosa di simile:

<activity android:name=".Main" android:label="@string/app_name" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
8

Controlla la tua manifest.xml. Assicurati di avere la categoria LANCIO lì.

<activity android:name=".myActivity" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 

     </intent-filter> 
    </activity> 
2

Ho avuto questo stesso problema e si scopre ho avuto un '\' al posto di un '/' in il tag xml. Ha ancora dato lo stesso errore ma solo a causa di un problema di sintassi.

5

Ho risolto il problema aggiungendo il blocco attività nel tag dell'applicazione. Ho creato il progetto utilizzando la procedura guidata, non so perché il mio file AdroidManifest.xml non contenesse il blocco dell'applicazione? Ho aggiunto il blocco applicativo:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".ToDoListActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

E ho l'output desiderato sull'emulatore.

51

Più tag di azione in un singolo tag intent-filter causeranno lo stesso errore.

+0

Ho ricevuto un downvote. Qualcuno può confermare se questo sintomo è stato risolto? Mi è sempre sembrato un insetto. – Gusdor

23

Come detto sopra Gusdor, "Tag di azioni multiple in un singolo tag intent-filter causano anche lo stesso errore." (Dagli il merito! Potrei semplicemente baciare Gusdor per questo!)
Non ho trovato nessun documento per questo fatto! Avevo aggiunto una nuova azione (USB) ed essendo intelligente, l'ho inserito nello stesso filtro di intent. E ha rotto il lancio. Come ha detto Gusdor, un filtro intent, un'azione! Apparentemente ogni azione dovrebbe andare nel proprio filtro di intenzioni.
Dovrebbe simile a questa ...

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
</intent-filter> 

Quando ho fatto questo, Wazoo! ha funzionato!

+0

stavo cercando questo – Vijay

1

manifesto è case sensitive, quindi si prega di confrontare queste righe per ogni caso non corrispondente in particolare la parola MAIN in:

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

Come è stato fatto notare, questo errore è probabilmente causato da un intent-filter mancante o errato.

Vorrei solo aggiungere che questo errore si presenta anche se si imposta android:exported="false" sulla propria attività di avvio (nel file manifest).

+0

Questo era davvero il mio problema. – bvd

1

basta aggiungere questo al vostro tag aplication in AndroidManifest.xml presentare

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

e anche modificare il tag usi-sdk da Android: targetSdkVersion = "16" a 17

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 
1

Ti sei perso specificando gli elementi del filtro intent nel file manifest. Il file manifest è:

<application android:label="@string/app_name" android:icon="@drawable/icon"> 
    <activity android:name="Your Activity Name" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

Aggiungere un d controllalo correttamente Spero che ciò possa essere d'aiuto ..

2

Se si utilizza l'IDE eclissi standard fornito da google per lo sviluppo Android, è possibile selezionare la casella di controllo "Attività di avvio" durante la creazione di una nuova attività. Di seguito riportiamo:

enter image description here

1

È possibile aggiungere avvio per l'attività in Eclipse editor visuale manifestare:

Application Nodes section should look like this:

2

In Eclipse, quando può fare questo:

enter image description here

Ma è preferibile apportare le modifiche corrispondenti all'interno dell'Andro id manifest file.

1

MAIN deciderà la prima attività che verrà utilizzata all'avvio dell'applicazione. Il programma di avvio aggiungerà un'applicazione nel dashboard dell'applicazione.

Se ce l'hai già e stai ancora ricevendo il messaggio di errore ma forse è perché potresti utilizzare più di una categoria o azione in un filtro intent. In un filtro intent ci può essere solo uno di questi tag. Per aggiungere un'altra categoria, metterla in un altro filtro intento, come il seguente

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <!-- 
      TODO - Add necessary intent filter information so that this 
       Activity will accept Intents with the 
       action "android.intent.action.VIEW" and with an "http" 
       schemed URL 
     --> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <data android:scheme="http" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 
0

Non hai incluso Launcher filtro intento di attività che si desidera visualizzare prima, in modo che non sa che l'attività per iniziare quando lanci di applicazione, per questo dirlo al sistema includendo l'intento del filtro launcher in manifest.xml