2011-01-26 12 views
81

Estoy escribiendo un programa simple de Android, y obteniendo estos no hay errores, no sé lo que son. Mi programa es correcto, pero no muestra resultados. Creo que es debido a estas dos líneas:¿Qué significa "No se encontró actividad del iniciador"?

[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! 

Respuesta

154

Aquí hay un ejemplo de AndroidManifest.xml. Es necesario especificar las principales y el lanzador en el filtro de intención para la actividad que desea iniciar el lanzamiento

<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

, pero ¿qué son .MAIN y .LAUNCHER en mi aplicación ????????? – Veer

+6

Esos siempre se verán exactamente así, no son clases en su aplicación, son acciones que están sucediendo. Del mismo modo, puede tener un incendio de actividad en otras acciones. por ejemplo \t \t \t \t \t \t \t \t tribe84

+0

El "básicamente" ayuda a Android a decidir qué hacer con la actividad. Consulte la sección de intención de los documentos – dbryson

6

Significa que no especifica una actividad para Android para lanzar como predeterminado cuando la aplicación se abre desde el lanzador. Debe agregar un Filtro de intención en el Manifiesto de la actividad en la que desea actuar como predeterminado cuando la aplicación se está iniciando.

Lea http://developer.android.com/guide/topics/intents/intents-filters.html#ccases para obtener más información.

16

¿Tiene una actividad configurada como la actividad iniciada cuando se inicia la aplicación?

Esto se hace en el archivo de Manifest.xml, algo así como:

<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

Compruebe su manifest.xml. Asegúrese de tener la categoría LANZADOR allí.

<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

que tenía este mismo problema y resulta que tenía un '\' en lugar de un '/' en la etiqueta xml Todavía dio el mismo error, pero solo debido a un problema de sintaxis.

5

Resolví el problema agregando un bloque de actividad en la etiqueta de la aplicación. Creé el proyecto usando el asistente, no sé por qué mi archivo AdroidManifest.xml no contenía el bloque de aplicaciones. He añadido el bloque de aplicación:

<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> 

Y consigo la salida deseada en el emulador.

51

Las etiquetas de acción múltiple en una sola etiqueta de filtro de intención también causarán el mismo error.

+0

Recibí un voto negativo. ¿Alguien puede confirmar si este síntoma ha sido reparado? Siempre me pareció un error. – Gusdor

23

Como Gusdor dijo anteriormente, "Las etiquetas de acción múltiple en una sola etiqueta de filtro de intención también causarán el mismo error". (¡Dale el crédito! ¡Podría besar a Gusdor por esto!)
¡No encontré ningún documento para este hecho! He añadido una nueva acción (USB) y, siendo inteligente, la concentré en el mismo filtro de intención. Y rompió el lanzamiento. ¡Como dijo Gusdor, un filtro de intención, una acción! Aparentemente, cada acción debería ir en su propio filtro de intención.
Debe tener un aspecto como este ...

<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> 

Cuando hice esto, WAZOO! ¡funcionó!

+0

Estaba buscando esto – Vijay

1

Manifiesto mayúsculas y minúsculas, así que por favor comparar estas líneas para cualquier caso desajuste en especial la palabra MAIN en:

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

Como se ha señalado, este error es causado probablemente por la falta o incorrecta una intent-filter.

Me gustaría agregar que este error también aparece si configura android:exported="false" en su actividad de inicio (en el manifiesto).

+0

Este fue de hecho mi problema. – bvd

1

sólo tiene que añadir esto a su etiqueta de aplicacion en AndroidManifest.xml presentar

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

y también editar la etiqueta de usos-SDK de Android: targetSdkVersion = "16" a 17

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

Se perdió en la especificación de los elementos filtrantes intención en el archivo de manifiesto es 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> 

Añadir una verifique esto correctamente Espero que esto ayude ...

2

Si está utilizando el eclipse IDE estándar provisto por google para el desarrollo de Android, puede marcar la casilla de verificación "Actividad del iniciador" mientras crea una nueva actividad. A continuación:

enter image description here

1

Puedes añadir lanzador de la actividad en Eclipse editor visual manifiesta:

Application Nodes section should look like this:

2

En Eclipse cuando se puede hacer esto:

enter image description here

Pero es preferible hacer los cambios correspondientes dentro del Andro archivo de manifiesto de id.

1

MAIN decidirá la primera actividad que se utilizará cuando se inicie la aplicación. Launcher agregará la aplicación en el tablero de la aplicación.

Si ya los tiene y todavía recibe el mensaje de error, pero quizás es porque podría estar usando más de más categoría o acción en un filtro de intención. En un filtro de intención solo puede haber una de esas etiquetas. Para añadir otra categoría, lo puso en otro filtro intención, como el siguiente

 <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

no se ha incluido Lanzador de filtro de la intención de la actividad que desea que aparezca en primer lugar, por lo que no sabe qué actividad se inicia cuando se inicia la aplicación, para esto, dígale al sistema incluyendo el intento de filtro de iniciador en manifest.xml

Cuestiones relacionadas