Error tipo 3 Error: la clase de actividad {} no existe

Tengo un proyecto de Android INTELIJ (v12) importado con éxito a AndroidStudio (v0.4.0). Funciona perfectamente si no cambio nada en manifiesto. Cuando quiero cambiar la actividad del iniciador y ejecutarlo, muestra el siguiente error:

Launching application: com.trackingeng/LandingActivity. DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.trackingeng/LandingActivity } Error type 3 Error: Activity class {com.trackingeng/LandingActivity} does not exist. 

Cuando hago clic en Proyecto de sincronización con archivos Gradle , genera:

 Project Sync The project 'TrackingEng' is not a Gradle-based project 

¿Alguien se ha enfrentado a este problema? ¿Algunas ideas?

Configuración de ejecución: enter image description here

Me enfrenté a un problema similar después de refactorizar.
Esto es lo que hice para resolver este problema:

  1. Limpiar el proyecto
  2. Eliminado el directorio de Build
  3. Reiniciado Android Studio
  4. Reconstruir el proyecto
  5. correr

¡Y todo funcionó bien!
Creo que la clave es reiniciar tu IDE .

Espero que esto te ayude a ti o a cualquier otra persona!

Editar:
Si los pasos anteriores no funcionan para usted, deleting gradle cache parece ser una solución, como señala @Yasitha.

Editar 2
Según lo sugerido por un par de usuarios en los comentarios a continuación, a veces el problema puede resolverse mediante la eliminación y reinstalación completa de la aplicación desde su dispositivo.
Simplemente escriba adb uninstall en la terminal para eliminar completamente la aplicación del dispositivo.

ACTUALIZACIÓN para Android Studio 2.1 y posteriores

Cuando ejecuta Android Studio 2.1 y versiones posteriores, también puede encontrar este problema cuando tiene habilitada la opción de ejecución instantánea en sus preferencias (está habilitada de manera predeterminada).

Para desactivar esta opción, vaya a la opción Preferences en el menú superior de Android Studio y busque Instant Run para poder desmarcar la primera checkbox en esa pantalla.

enter image description here

De todos modos, eso lo solucionó para mí. Originalmente señalado por el usuario @yusufonder. Descubrí que este era el problema ya que la instalación de gradle aún funcionaba.

Puede ser útil para alguien: –

A veces, cuando se prueba en un dispositivo, la aplicación no se desinstala correctamente . Para verificar y corregir esto:

  1. Ve a Configuración .
  2. Ir a aplicaciones .
  3. Seleccione su aplicación (aquí, puede verificar que su aplicación no se desinstale correctamente) .
  4. Abra el menú de desbordamiento en la esquina superior derecha y seleccione Desinstalar para todos los usuarios .
  5. Hecho. Intenta instalar y luego inicia tu aplicación nuevamente.

Esto sucede cuando haces lo siguiente

  • conecta tu dispositivo / emulador
  • ejecutar la aplicación desde Android Studio (AS)
  • use / pruebe la aplicación y desinstálela del dispositivo mientras todavía está conectada a su computadora
  • intente ejecutar la aplicación nuevamente desde AS

AS cree que todavía tienes la aplicación en tu dispositivo.

tl; dr – Para resolver esto, simplemente puede desconectar su dispositivo después de desinstalar la aplicación y volver a conectarla.

Me enfrentaría a este problema al desinstalar la aplicación a través del dispositivo (es decir, arrastrando la aplicación a la opción “Desinstalar”). Pero aquí está la forma correcta de desinstalar:

Use el comando ./gradlew uninstallAll . Esto evitará el Error: Activity class {HomeActivity} does not exist. error.

Actualizar:

Si eres perezoso puedes usar la abreviatura para esta tarea: ./gradlew uA .

O bien, defina alias para las tareas comunes de gradle en su archivo .bash_profile , y así ahorrará tiempo, escribir y no tendrá que recordar todos los comandos ni preocuparse por los errores tipográficos. Sugiero hacer esto.

Intente cambiar el nombre de la actividad en su archivo AndroidManifest.xml .

En este momento dice:

  

Intente agregar un punto al comienzo del nombre de la actividad:

  

O agregando el nombre del paquete al comienzo del nombre de la actividad:

  

También puede ser un problema que el nombre de su paquete tenga solo dos componentes separados por puntos (su nombre de paquete es “com.trackingeng”; un nombre de paquete más estándar sería “com.trackingeng.app”)

Tuve el mismo error después de cambiar el nombre / refactorizar. Lo que hice fue agregar el atributo de propiedad applicationId a mi archivo build.gradle y establecer su valor para el paquete de la aplicación.

En build.gradle :

 android { defaultConfig { applicationId "com.example.myapp" } } 

Para mí, el problema fue que AndroidStudio pensó que la aplicación todavía estaba en el dispositivo.

Arreglarlo:

  1. reinicie el adb daemon ; en una terminal o símbolo del sistema, ingrese:

     adb kill-server adb start-server 
  2. intenta iniciar tu aplicación

  3. si todavía no funciona, mira esta respuesta .

¡asegúrese de que las platform-tools de platform-tools del SDK de Android se agreguen a las variables de ruta del sistema !

para mí, en Android 6 cuando desinstalé la aplicación, en realidad fue desactivada en lugar de ser eliminada del dispositivo.

Configuración> Aplicaciones> haga clic en su aplicación y desinstálela

Esto me lo arregló

Creo que otra razón por la que ocurre este problema es que no se borra por completo para todos los usuarios en el dispositivo.

Vaya a Configuración -> Aplicaciones -> Sus aplicaciones -> Haga clic en los 3 puntos en la esquina superior derecha -> Desinstalar para todos los usuarios

Esto funciona para mi. Sucede especialmente si cambias los íconos de la aplicación o si juegas con el archivo AndroidManifest.xml.

En mi caso, fue porque la aplicación que estaba intentando iniciar se instaló para un usuario diferente en el dispositivo. Vaya a Configuración -> Aplicaciones (Todas las aplicaciones) y seleccione la aplicación. Haga clic en el menú de desbordamiento y seleccione “Desinstalar para todos los usuarios”. Esto deberia resolver el problema.

Para mí fue un problema muy específico, tengo un Lg g5 para probar mi aplicación, y para restablecer los datos de mis aplicaciones lo desinstalé en el teléfono, pero el teléfono tiene una característica “agradable” para no desinstalar aplicaciones inmediatamente para que pueda reinstalarlos dentro de un día. Entonces, la aplicación se instaló pero no se puede usar (se deshabilitó ) después de eliminar por completo la aplicación del teléfono.

Incluso yo tuve el mismo problema, pero ninguna de las soluciones anteriores funcionó para mí. El problema era que había congelado la aplicación particular que estaba tratando de ejecutar a través de Copia de seguridad de Titanium debido a la cual obtuve el error anterior. Intenté ambos en Eclipse y Android Studio.

Después de la realización, simplemente desinstalé la aplicación y luego la ejecuté de nuevo.

Problema resuelto 🙂

Tenga en cuenta que si tiene varios Perfiles configurados en el dispositivo, es posible que su aplicación ya exista en uno de los otros Perfiles.

La desinstalación de la aplicación de todos los perfiles resolvió el problema para mí.

Tuve el mismo problema y lo resolví refactorizando mi selector de actividad, simplemente cambie el nombre de la clase y funciona.

En mi caso, la siguiente razón fue:

Tengo 2 usuarios: yo y el invitado. y la aplicación se instaló en ambos, pero se eliminó solo al principio.

cuando cambié a la pantalla de invitado y elimino la aplicación desde allí, la aplicación se instaló bien.

Espero que esto ayude a alguien 🙂

Tomé referencia del comentario de @jayeffkay.

Funciona para mí después de eliminar los archivos de caché gradle ubicados en

/your_proj_directory/.gradle/2.10

2.10 es la versión gradle utilizada en mi caso.

También enfrenté el mismo problema en algún lugar del pasado. Dichos problemas en realidad ocurren cuando realizamos algunas refactorizaciones como: cambiar el nombre, mover archivos dentro del proyecto, etc. Renombrar y mover archivos requieren cambios en el archivo gradle, así que cada vez que renombre o mueva algún archivo simplemente limpie el proyecto:

Build -> Clean Project

Al limpiar el proyecto solo se eliminan los archivos .class y se vuelve a comstackr el proyecto. Básicamente, fuerza una reconstrucción del proyecto.

A veces, tales tipos de errores no se limpiaban en el proyecto de limpieza, entonces intentaban desinstalar la aplicación del dispositivo (ya sea un emulador o uno físico) y volvían a ejecutar la aplicación. Espero que esto te ayude, me ayuda 50% veces.

Nota: – Siempre que tenga algún error simplemente no vaya a google, limpie el proyecto si esto no funciona, haga lo que quiera googlear.

Tuve el mismo problema. Mi problema se solucionó cuando deshabilité la ejecución instantánea para Android Studio 2.1.1

Me enfrento al problema similar, por favor, siga los pasos a continuación.
Esto te ayudará:

1- Limpia tu proyecto
2- Elimina tu directorio de comstackción
3- Reinicia tu Android Studio
4- Reconstruir el proyecto
5- se ejecutará con éxito.

Gracias

Me enfrenté a este problema últimamente y probé todas las sugerencias anteriores, y el problema no se guardó. Finalmente cambié un NDK, y el problema fue resuelto …

Mi solución es: cerrar la “ejecución instantánea” de Android Studio.

“ejecución instantánea” se puede encontrar con los siguientes pasos: Preferencias -> Comstackción, Ejecución, Despliegue -> Ejecución instantánea

y luego desmarque la checkbox “Activar ejecución instantánea para intercambio en caliente …”

Tengo LG Stylus y en mi teléfono de prueba, la aplicación no se elimina de forma permanente. En Configuración -> Aplicación encontré la aplicación de depuración (que trato de instalar y depurar por AS) con el desvío de adnotaciones. Cuando elimino la aplicación de mi teléfono, el error desaparece.

En caso de que alguien se encuentre con mi problema y no tenga suerte con las otras soluciones … estaba intentando iniciar una actividad a través de adb para FireTV mientras depuraba la integración del iniciador de Amazon. Sin embargo, mi proyecto tenía 60 variantes de comstackción diferentes (multiplataforma, proyecto de aplicaciones múltiples) y ApplicationId no coincidía con ningún classpath, ya que el paquete de ejecución (classpaths) era diferente del applicationId.

Estaba intentando ejecutar adb shell am start -n com.myappid.example.packageone.packagetwo/com.myappid.example.packageone.packagetwo.MySplashActivity

(Por supuesto que había intentado muchas combinaciones con com.runtimepath.example porque tenía el desafío adicional de una applicationId diferente en mi build.gradle y otra en tiempo de ejecución)

Lo que finalmente ayudó fue esta publicación https://stackoverflow.com/a/36255727/5970652

¡Lo cual reveló un formato diferente! com.myappid.example/com.runtimepath.example.packageone.packagetwo.MySplashActivity

Por lo tanto, si tiene un classpath de tiempo de ejecución diferente, intente especificar con el ID de aplicación build.gradle antes de la barra y el classpath de tiempo de ejecución después.

También puede obtener estos valores de BuildConfig.APPLICATION_ID y this.getLocalClassName() respectivamente, si desea iniciar sesión en logcat.

Ninguno de los anteriores funcionó para mí. Tenía una versión de la aplicación en el dispositivo que no se pudo desinstalar porque estaba corrupta de alguna manera. Tuve que restablecer el dispositivo de fábrica. No es muy molesto porque era solo un dispositivo dev

Me gustaría compartir el truco que ayudó en mi caso. Desinstalé la aplicación del dispositivo y nada de clean/rebuild/Android Studio restart operaciones de clean/rebuild/Android Studio restart no ayudaron.

Dado que Android Studio cree que la aplicación aún está instalada en el dispositivo y no la implementa, puede forzar la instalación con el ADB:

 adb install -r  

donde -r significa reinstalar la aplicación, manteniendo sus datos.

Como otros han notado, este problema puede ser causado por un dispositivo / emulador conectado mientras se desinstala la aplicación y la conexión AS aún existe. Por mi parte, eliminé todas las carpetas de comstackción (bajo la aplicación y los directorios del proyecto) en el proyecto y relancé la aplicación en el dispositivo / emulador.

Tenía el tipo de error 3. Logré solucionarlo agregando el siguiente código a continuación en AndroidMainfest.xml.

        

Si no tiene cuidado y está tratando de desactivar algo en el manifiesto de su aplicación, asegúrese de no deshabilitar la aplicación …

  

Accidentalmente configuré enabled a "falso" en lugar de allowBackup . Perdió 2 horas buscando una solución.

Verifica si estás construyendo una versión oculta. Ese es el comportamiento previsto para la aplicación oculta.

Si desea comstackr una versión normal, debe cambiar la Variante de comstackción en Android Studio Build> Seleccionar comstackción Variant , cámbielo a regular.

Si crea un nuevo proyecto a partir de un proyecto existente:

build.gradle

 defaultConfig { applicationId "xxxxxxxxx" //xxxxxxxxx should be "package name (com.demo.app) from AndroidMenifest.xml" minSdkVersion 16 targetSdkVersion 28 versionCode 1 versionName "3.0.0" ndk { abiFilters "armeabi-v7a", "x86" } } 

a continuación, haga clic en sincronización en el estudio de Android