¿Qué significa "No se encontró actividad del Lanzador"?


82

Estoy escribiendo un programa simple de Android, y no obtengo estos errores, no sé cuáles son. Mi programa es correcto, pero no muestra salida. Creo que es por estas dos líneas:

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

Respuestas:


158

Aquí tienes un ejemplo de AndroidManifest.xml. Debe especificar el PRINCIPAL y el LANZADOR en el filtro de intención para la actividad que desea comenzar en 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
Esas siempre se verán exactamente así, no son clases en su aplicación, son acciones que están sucediendo. Del mismo modo, puede activar una actividad en otras acciones. por ejemplo, <action android: name = "android.intent.action.VIEW"> </action> <category android: name = "android.intent.category.DEFAULT"> </category> <categoría android: name = "android .intent.category.BROWSABLE "> </category>
tribe84

Los "básicamente" ayudan a Android a decidir qué hacer con la actividad. Consulte la sección Intención de los documentos
dbryson

2
No olvide modificar el valor de este atributo android:name="ExampleActivity"a la clase principal de actividad adecuada.
Omar

51

Varias etiquetas de acción en una sola etiqueta de filtro de intención también causarán el mismo error.


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

24

Como dijo Gusdor anteriormente, "Varias etiquetas de acción 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! Había agregado una nueva acción (USB) y, siendo inteligente, la agrupé 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 debe 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ó!


Estaba buscando esto
Vijay

17

¿Tiene una actividad configurada que sea la actividad iniciada cuando se inicie la aplicación?

Esto se hace en su archivo Manifest.xml, algo 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

Verifique su manifest.xml. Asegúrate 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>


5

Solucioné 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 un bloque de aplicación. Agregué el bloque de la 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 obtengo la salida deseada en el emulador.


5

Como se ha señalado, este error probablemente se deba a que falta o es incorrecto intent-filter.

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


Este era de hecho mi problema.
bvd

2

Tuve el mismo problema y resultó 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.


2

Si está utilizando el IDE de eclipse estándar proporcionado por Google para el desarrollo de Android, puede marcar la casilla de verificación "Actividad del lanzador" mientras crea una nueva actividad. Por favor encuentre abajo:

ingrese la descripción de la imagen aquí


2

En Eclipse cuando puedo hacer esto:

ingrese la descripción de la imagen aquí

Pero es preferible realizar los cambios correspondientes dentro del archivo de manifiesto de Android.


1

simplemente agregue esto a su etiqueta de aplicación en el archivo AndroidManifest.xml

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

y también edite la etiqueta uses-sdk de android: targetSdkVersion = "16" a 17

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

1

No pudo especificar los elementos del filtro de intención en su archivo de manifiesto. El archivo de manifiesto es:

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

Agregue y verifique esto correctamente. Espero que esto ayude ...


1

El manifiesto distingue entre mayúsculas y minúsculas, así que compare estas líneas para detectar cualquier discrepancia entre mayúsculas y minúsculas, especialmente la palabra MAINen:

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


1

MAIN decidirá la primera actividad que se utilizará cuando se inicie la aplicación. El lanzador agregará una aplicación en el panel de la aplicación.

Si ya los tiene y todavía recibe el mensaje de error, pero tal vez sea porque podría estar usando más que más categorías o acciones en un filtro de intención. En un filtro de intención, solo puede haber una de esas etiquetas. Para agregar otra categoría, colóquela en otro filtro de 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 ha incluido el filtro de intención del lanzador en la actividad que desea que aparezca primero, por lo que no sabe qué actividad iniciar cuando se inicia la aplicación, para esto, dígale al sistema incluyendo la intención del filtro del lanzador en manifest.xml

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.