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.

Vipassana Vijayarangan
fuente
Posible duplicado del error: actividad predeterminada no encontrada
Sky Kelsey

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)

Micer
fuente
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>
Anup Cowkur
fuente
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.

sintagma
fuente
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.

Sedrick
fuente
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
Phileo99
fuente
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 .

Josh
fuente
9

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

ingrese la descripción de la imagen aquí

Código
fuente
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.

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

dabluck
fuente
¡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í.

Alexander Köb
fuente
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í).

Teun Kooijman
fuente
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"

Valentin
fuente
1

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

U tres
fuente
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.

IgorGanapolsky
fuente
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.

Sayali
fuente
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.

Yousef Gamal
fuente
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.

ConquerAndroid
fuente
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.

Zafer
fuente
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!

user582645
fuente
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.

Rocío García Luque
fuente
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
Harish Rana
fuente
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 ...

Mayur Sakhiya
fuente
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.

Pavel Poley
fuente
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

masbayu
fuente
0

Compruebe si hay alguna etiqueta duplicada en su AndroidManifest.xmlarchivo.

Devansh Maurya
fuente
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 {
...
}
Asad35Waheed
fuente
-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!!

Mstack
fuente
-1

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

Mehmet Agah Balbay
fuente