Actividad predeterminada no encontrada en Android Studio


93

Acabo de actualizar a Android Studio 0.2.8 y aparece un error que dice "Actividad predeterminada no encontrada" cuando intento editar las configuraciones de ejecución.

Cuando ejecuto Android Studio, aparece este error "Se permite el acceso solo desde el hilo de envío de eventos"

La actividad que estoy usando es una actividad de fragmentos.

Hasta ahora he intentado reconstruir e invalidar cachés / reiniciar. Ambos fueron inútiles.

Por favor, avíseme qué puedo hacer para solucionar el problema.


Respuestas:


45

En Android Studio, haga clic derecho en el proyecto y elija Abrir configuración del módulo . Luego vaya a la pestaña Fuentes en su módulo, busque la carpeta src , haga clic derecho sobre ella y márquela como Fuentes (color azul).

EDITAR: No hay una pestaña de fuentes en las versiones posteriores de Android Studio, pero puedes editar el archivo build.gradle en su lugar: https://stackoverflow.com/a/22028681/1101730 (gracias por el comentario Josh)


27
¿Cómo podría hacer esto en 0.6.1 ? No veo una pestaña de Fuentes .
lschlessinger

7
yo tampoco. Hay propiedades, firmas, sabores, tipos de compilación y dependencias
Junior Mayhé

4
No tenía la pestaña "Fuentes", así que edité el archivo build.gradle en su lugar: stackoverflow.com/a/22028681
Josh

2
¡Perfecto! Gracias por ayudar a @Micer. Chicos, en su proyecto IntelliJ presione 'F4', luego tiene tres pestañas (Fuentes, Rutas, Dependencias), vaya a la pestaña 'Fuentes' y verifique si la carpeta 'src' (en la estructura de árbol) es azul. De lo contrario, presione 'Alt + S' para incluir la carpeta de origen en la estructura del proyecto.
Ryan Amaral

1
@IgorGanapolsky Tienes razón, parece que la pestaña Fuentes se ha eliminado en versiones posteriores de Android Studio. Comprueba la respuesta de Josh.
Micer

51

¿Ha agregado un ACTION_MAINfiltro de intención a su actividad principal? Si no agrega esto, Android no sabrá qué actividad iniciar como actividad principal.

ex:

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

1
Sí, esto está hecho. Arreglé el "Acceso solo desde el hilo de envío de eventos" usando Oracle JDK en lugar de openJDK. Sin embargo
la

5
Además, el nombre "com.package.name.MyActivity"podría omitirse si todo el <intent-filter>elemento está dentro de un <activity>elemento que corresponde a su MyActivity en su espacio de nombres.
Xavi Montero

Ja, cambié el nombre de una clase que Filterincluye todas las variables nombradas filtery aparentemente Android Studio decidió incluir AndroidManifest.xmly <intent-*filter*>. Esta respuesta hizo mi doble verificación AndroidManifest.xmly me ayudó a encontrar el error =)
Stephan Henningsen

¿Dónde está documentado esto? No puedo encontrarlo ...
mirabilos

32

Tuve el mismo problema al importar un proyecto a Android Studio, probablemente debido al hecho de que el proyecto se desarrolló en una versión anterior de Android Studio que la que tengo actualmente instalada en mi computadora.

Lo que lo resolvió fue simplemente elegir:

File -> Invalidate Caches / Restart...

y luego seleccionando Invalidate and Restart.


1
Muchas gracias @syntagma, tu orientación resolvió mi problema después de horas de esfuerzo.
MMG

16

Si no tiene la pestaña y comenzó con una actividad vacía, intente esto. A continuación se muestra un ejemplo de código de muestra:

<application android:label="@string/app_name">

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

</application>

Ahora ve a tu archivo AndroidManifest.xml. A continuación, copie el filtro de intención de este código. Mire su archivo de manifiesto realmente bien y pegue el filtro de intención en el lugar exacto en el que se encuentra en el código anterior. (después de la parte .yourActivityName> del manifiesto). Espero que esto haya ayudado.


13

Si aún recibe un error que dice "Actividad predeterminada no encontrada" cuando intenta editar las configuraciones de ejecución incluso después de ejecutar:

Invalidar caché y reiniciar .

Luego intente eliminar la carpeta Configuración / Preferencias:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

o en Mac:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

Si ha cambiado el nombre de sus paquetes o ha cambiado las ramas de su control de versiones, a veces Android Studio no reconoce todos los archivos y estropea las cosas. La única solución que funcionó para mí es cerrar AS y luego eliminar .AndroidStudioXY (donde XY es su número de versión) que @ Phileo99 señaló.
Zbarcea Christian

1
¡Me salvaste la vida! Solo haz esto / <USER_HOME_DIR> /.
AndroidStudioPreview3.2

de nada @nadafafif! por favor vota mi respuesta si te ayudó.
Phileo99

@ Phileo99 Ya hice eso. No pude evitar hacerlo. :) Salud. Sigue ayudando así.
nadafafif

Eso ayudó, pero tenga en cuenta que descargará muchas cosas. La descarga tomó alrededor de 15 minutos
Valgaal

10

Cuando hice clic en "Abrir configuración del módulo", no había ninguna pestaña de "Fuente" , creo que porque se ha eliminado para las versiones más recientes de Android Studio (estoy en 0.8.14). Entonces tuve que hacer esto en su lugar:

Agregue estas líneas al build.gradlearchivo dentro del android { ... }bloque:

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

Después de editar el archivo, haga clic en Herramientas> Android> Sincronizar proyecto con archivos Gradle .

Crédito a esta respuesta y este comentario .


9

Seguir hizo el truco para mí. Desde Ejecutar -> Editar configuración .

ingrese la descripción de la imagen aquí


No recomendaría esta solución, ya que hizo que la aplicación ya no se mostrara en la lista de aplicaciones disponibles en el Samsung Galaxy S5 Neo y el Samsung Galaxy S6.
Teun Kooijman

3

Mi problema se redujo a un error adicional que aparecía a veces, indicando

Manifest Merger failed with multiple errors in Android Studio

Lo que en última instancia estaba causando mi problema era el hecho de que había varios manifiestos (un manifiesto de depuración y un manifiesto en el nuevo módulo que acababa de importar), y no se fusionaban correctamente debido a esto. Después de ver esta respuesta , pude analizar el manifiesto combinado y encontrar la causa del problema y solucionarlo.


2

esto me pasó porque escribí con mayúscula los caminos en el manifiesto. cambiado:

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

a

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

y fue arreglado


¡Salvaste mi día! Gracias
Siva Kumar

2

Hoy me encontré con el mismo problema y estaba revisando las respuestas aquí.

Para mí, la diferencia fue que ayer funcionó bien, así que pensé que realmente no podía ser un problema de configuración, ni la configuración ni la versión de Android Studio cambiaron.

Afortunadamente, intenté reiniciar Android Studio antes de intentar cualquiera de las otras respuestas, y afortunadamente eso resolvió el problema.

Entonces, para todas las personas que se encuentran con esto: lo primero que debe intentar es reiniciar Android Studio y solo si eso no resuelve el problema, pruebe las otras respuestas aquí.


2

Acabo de experimentar el mismo error en Android Studio 1.5.1. y acaba de encontrar la fuente del problema. No estoy seguro de si la causa fue un error humano o algún error extraño en el comportamiento del IDE, pero ninguna de las preguntas de StackOverflow existentes sobre este tema parecía mostrar algo sobre esto, así que pensé que lo publicaría como una respuesta de todos modos.

Para mí, uno de los miembros de mi equipo o el propio IDE, había cambiado la entrada del manifiesto de actividades del lanzador, lo que hacía que se viera así:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

Si bien debería, de hecho, verse así:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

Por lo tanto, verifique dos, tres y cuatro veces el formato de su actividad de iniciador en el manifiesto y es posible que pueda ahorrarse algo de tiempo.

Espero que esto ayude.

EDITAR: Sugiero encarecidamente a las personas que no sigan las respuestas que sugieren seleccionar manualmente una actividad de iniciador dentro de las opciones de configuración de su módulo, ya que esto provocó que la aplicación ya no se mostrara en la lista de aplicaciones instaladas tanto en el Samsung Galaxy S5 Neo y el Samsung Galaxy S6 (al menos para mí).


2

ingrese la descripción de la imagen aquí

Presione aplicación -> Editar configuraciones
Después de ese cambio de valor en Iniciar en "Nada"


1

Asegúrese de que en el manifiesto el nombre del paquete sea el mismo que su actividad principal


1
  1. En Android Studio, cambie a la perspectiva del proyecto (no a la perspectiva de Android).

  2. Asegúrese de que su proyecto siga la estructura predeterminada del complemento de gradle (es decir, project_dir / app / src / main / java ... )

  3. Elimine todas las carpetas y subcarpetas de compilación que vea.

  4. En la barra de herramientas, haga clic en Construir -> Limpiar proyecto , luego en Construir -> Reconstruir proyecto .

  5. Intente ejecutar el proyecto.


1

Puede hacer que Android Studio no se queje yendo al menú "Editar configuraciones" (toque "Shift" tres veces, escriba "Editar configuraciones"), luego cambie Opciones de inicio> Iniciar a "Nada".

Probablemente agregaré una actividad genérica que contenga instrucciones, solo para evitar confusiones.


Esto me salvó el tiempo
Sayali

1

En mi caso, funcionó cuando eliminé la carpeta .idea del proyecto (Proyecto / .ida) y volví a abrir Android Studio.


Eliminar la carpeta .idea ayudó en mi caso, ¡Gracias! Para aclarar, todos los archivos con extensión ".iml" estaban dentro de la carpeta .idea. ¡NO elimine solo los archivos .iml porque esto puede provocar otros errores!
Cordis Audax Agrinova

0
  1. Haga clic derecho en el proyecto y elija Abrir configuración del módulo.
  2. Vaya a la pestaña Fuentes en su módulo.
  3. Encuentra tu carpeta src.
  4. Haga clic derecho sobre él y márquelo como Fuentes.

Esto solucionó el error en mi caso.


0

Si cambió el nombre de los directorios (estructura de clases), por ejemplo, com.dir.sample a com.dir.sample1, después de eso, no olvide cambiar el paquete com.dir.sample a com.dir.sample1.


0

Modifique "Workspace.xml" (presione Ctrl + Shft + R para buscarlo)

  1. Modificar el nombre de la actividad con el nombre del paquete

  2. Asegúrese de cambiar "name =" USE_COMMAND_LINE "a value =" false "

  3. Recargar el proyecto

¡Hecho!


Buscaría con Ctrl + Shft + F, + R = reemplazar donde F = encontrar.
Shishdem

0

Para aquellos como yo que tenían dificultades para encontrar la "pestaña Fuentes":

ingrese la descripción de la imagen aquí

Aquí tienes que marcar tu carpeta "src" en azul (primero haz clic en Marcar como: Fuente , luego en tu carpeta src ), y listo.


0

Hay dos pasos que puede seguir:

  1. Vaya a configuraciones e ingrese el nombre de la actividad que se lanzará
  2. Si aún no funciona, deshabilite Instant Run

0

Probé todas las soluciones, pero no funcionó en absoluto. de lo que he intentado deshabilitar la ejecución instantánea en mi estudio de Android.

Vaya a Configuración o Preferencias de Android Studio (para MAC) -> Compilación, Ejecución, Implementación -> Ejecución instantánea .

desmarque la funcionalidad de ejecución instantánea y luego haga clic en sincronizar proyecto con archivos gradle desde el menú de archivo

ahora ejecuta tu compilación ...


Esto ya no es válido para Android Studio 4.0+
Jorge E. Hernández

0

En algún caso, puede tener un modelo con algún categorycampo, si lo refactoriza en todos los lugares, puede refactorizarlo en el archivo de manifiesto y luego la etiqueta xml dejará de ser válida.


0

Se pueden suceder muchas posibilidades para este tipo de caso (Actividad predeterminada no encontrada) Si todo el código está bien, especialmente en Manifest, solo necesita Invalidar Cache y reiniciar el estudio.

Pero en algún momento sucede cuando tiene una declaración de actividad duplicada en el manifiesto, no solo para la actividad principal, sino que también se desencadena por actividades secundarias.

Eso sucedió conmigo, la actividad predeterminada no se encontró porque tengo actividades secundarias duplicadas en el manifiesto, después de eliminar eso, todo está bien



0

Me lo imaginé. Agregué por error la palabra clave final en la declaración de actividad. Una vez que lo eliminé, ¡todo funciona!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. En Android Studio

  2. Vaya a editar Configuración.

  3. Seleccione la aplicación.

  4. elija la ruta de la actividad del almuerzo.

  5. aplicar, OK.

    ¡¡Gracias!!


-1

El nombre de la actividad predeterminado cambió (como SplashActivity -> SplashActivity1) y funciona para mí

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.