«Activité par défaut introuvable» lors de la mise à niveau d'Android Studio

465

J'ai mis à jour IntelliJ Idea de 12.0.4 à 12.10.

Maintenant, tous les modules de mon projet Android donnent l'erreur:

Erreur: activité par défaut introuvable

Je suis revenu à 12.0.4 et tout fonctionne à nouveau.

Des idées? Je pense que cela pourrait être un problème avec un plugin manquant. Le plugin n'étant pas installé, il n'est pas en mesure de trouver l'activité par défaut. Une autre chose aurait pu être une config locale, mais j'en doute. J'ai supprimé le dossier de configuration pour vérifier et cela n'a rien changé.

Saad Farooq
la source
3
avez-vous regardé le manifeste? peut-être que changer de version l'a effacé ou quelque chose? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv
Non ... mais je l'ai fait fonctionner avec 12.0.4 mais en réimportant le projet à partir de zéro.
Saad Farooq
2
Le manifeste est la clé, probablement une erreur de nom ou une omission, ou un problème d'espace de noms
slezica
Un problème manifeste dans les sept modules du projet qui fonctionne correctement 12.0.4 mais 12.10 ne fonctionne pas ??
Saad Farooq
Non, mais un changement dans un espace de noms ou quelque chose dans la disposition d'un projet, par exemple, pourrait ne pas être synchronisé avec le manifeste
slezica

Réponses:

889

Si vous voyez cette erreur se produire après la mise à niveau des versions d'IntelliJ IDEA ou d'Android Studio, ou après la génération d'un nouveau fichier APK, vous devrez peut-être actualiser le cache de l'EDI.

File -> Invalidate Caches / Restart...
Sky Kelsey
la source
2
Vous pouvez également essayer de déposer un bogue ici: youtrack.jetbrains.com/issues/IDEA Je les trouve très bons pour le suivi des bogues que je dépose.
Sky Kelsey
Je pense que c'était ça ... Je vais continuer à enquêter ... Je n'ai pas eu le temps d'ouvrir à nouveau le répertoire en tant que nouveau projet sur chacune des plateformes.
Saad Farooq
J'ai le même problème. Dans mon fichier manifeste, j'obtiens également une erreur «Impossible de résoudre le symbole« MainActivity »». J'ai importé le projet depuis Eclipse.
Roberto
28
Cela a fonctionné pour moi dans Android Studio, mais après le redémarrage, j'ai également dû faire Tools -> Android -> Sync Project with Gradle Files.
vaughandroid
304

Je ne peux pas expliquer pourquoi la mise à niveau d'IntelliJ pourrait provoquer ce problème car je ne l'utilise pas.

Cependant, cette erreur: «Activité par défaut introuvable» semble vous indiquer que vous n'avez pas déclaré d'activité dans AndroidManifest.xml qui est marquée comme l'activité principale, à lancer au démarrage de l'application.

Vous devriez avoir au moins une activité qui ressemble à ceci:

<activity
        android:name="com.your.package.name.YourActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Si vous n'avez pas au moins une activité avec un filtre d'intention comme celui-ci, vous verrez probablement le message d'erreur que vous avez inclus ici.

Vous devez ajouter ce filtre d'intention à l'activité que vous souhaitez ouvrir lorsque vous démarrez l'application, et cela devrait résoudre votre problème.

mattgmg1990
la source
ant le construit bien, tout comme IntelliJ 12.0.4
Saad Farooq
J'ai démarré mon application dans Eclipse, oui j'ai une activité par défaut. J'ai importé mon application dans Android Studio, c'était bien jusqu'au jour où j'ai ajouté un gestionnaire de notifications et d'autres choses, c'est à ce moment que je rencontre cette erreur. J'ai fait File-> Invalidate cache-> Restart et cela l'a corrigé. Mais l'erreur n'a pas été causée par le manque d'activité par défaut, comme vous l'avez indiqué.
The_Martian
A aussi fonctionné pour moi! MAIS NOTE: veuillez écrire "android.intent.xxx" en lettres minuscules - ma faute est que l'achèvement d'Android Studio a suggéré des lettres majuscules (cela m'a pris une heure) :-(
Philipp P
22
Pour ceux qui sont relativement nouveaux sur Android et que vous venez de foirer votre projet Android Studio, c'est la réponse que vous recherchez. La réponse acceptée est quand une mise à niveau a foiré les choses pour vous.
Tom Kidd
3
J'ai réglé cela et mon projet a déjà été exécuté plusieurs fois et il se passe soudainement. Je ne sais pas où est le problème. C'est peut-être un bug potentiel d'AS.
Licat Julius
81

Votre application a une activité de lancement par défaut?

cela pourrait être votre erreur

entrez la description de l'image ici

Étape 1 : Sélectionnez Modifier les configurations

entrez la description de l'image ici

Étape 2 : regardez cet avertissement: Activité par défaut introuvable entrez la description de l'image ici

Étape 3 : sélectionnez une activité par défaut entrez la description de l'image ici

entrez la description de l'image ici

Étape 3 : enregistrez vos modifications et terminez

entrez la description de l'image ici

Bonne chance

entrez la description de l'image ici

David Hackro
la source
Bonne réponse! C'est ce qui aide s'il n'y a pas d'activité dans l'application. (service uniquement). vous devez changer dans "activité" pour "ne pas lancer d'activité"
Udi Reshef
C'est la seule réponse qui a fonctionné pour les applications sans activité. Je vous remercie.
sephiron
Cela a fonctionné pour moi! En fait, j'avais une activité par défaut dans le manifeste, mais pour une raison quelconque, Android Studio n'a pas trouvé cela.
ocramot
2
J'ai suivi les étapes susmentionnées mais maintenant il est dit "L'activité 'MainActivity' n'est pas déclarée dans AndroidManifest.xml" bien que MainActivity soit là
Far
Cette réponse était facile à suivre. Aussi le commentaire de @Udi Reshef merci
Bishwas Mishra
66

La façon correcte de procéder consiste à ajouter ce qui suit au fichier manifeste:

<activity
    android:name="FULL_NAME_OF_YOUR_ACTIVITY"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

Celui-ci doit être inséré entre:

<application> </application>

Pas besoin d'invalider les caches.

Yuriy
la source
A aussi fonctionné pour moi! MAIS NOTE: veuillez écrire "android.intent.xxx" en lettres minuscules - ma faute était que l'achèvement d'Android Studio a suggéré des lettres majuscules (cela m'a pris une heure) :-(
Philipp P
Bon point: "Cela devrait être inséré entre: <application> </application>". C'était mon problème. Merci beaucoup.
Dennis Mathew
Soyez très prudent lors de la refactorisation de vos codes. dans mon propre cas, j'ai par erreur refactorisé «catégorie» en «téléphone» ainsi, android.intent.category a été changé en android.intent.phone.
Kenny Dabiri
J'ai utilisé l'assistant de création de projet d'Android Studio et je devais toujours le faire manuellement. Ai-je tort de penser que c'est un bug?
pdoherty926
46

Si vous travaillez sur une application de widget, cette solution devrait fonctionner pour vous:

  1. Aller à Edit Configuration
  2. Réglez Launch Optionsurnothing
Kishan Vasoya
la source
1
Tu es incroyable!
Rahul Singh
1
seulement cela fonctionne pour moi !!
Malith Ileperuma
44

Essayez de faire un clic droit sur le projet et choisissez Ouvrir les paramètres du module . Ensuite, allez dans l' onglet Sources de votre module, trouvez le dossier src , faites un clic droit dessus et marquez-le comme Sources (couleur bleue).

MODIFIER: Il n'y a pas d'onglet sources dans les versions ultérieures d'Android Studio, mais vous pouvez modifier le fichier build.gradle à la place: https://stackoverflow.com/a/22028681/1101730

Micer
la source
Cela m'a aidé, j'ai réalisé qu'intellij avait laissé tomber beaucoup de fichiers sources du src dans l'onglet Sources. J'ai déplacé mon colis hors du projet et je l'ai réintégré. Cela a résolu mon problème
Jesse Black
2
J'ai fait ce même genre de chose, mais j'ai fait un clic droit sur le dossier src et je suis allé à "Mark Directory As ..." puis "Sources Root". - Android Studio 0.8.6
elliptic1
1
Fonctionne comme un charme, Suppression de la racine actuelle et ajout du dossier parent de src et gen à nouveau
Udi Oshi
1
un moyen rapide d'accéder aux paramètres du module consiste à cliquer dans le navigateur de projet et à appuyer sur F4
whyoz
3
c'est obsolète car il n'y a plus d' onglet Sources dans les paramètres du module ouvert .
Buddy
23

Dans Android Studio sous Run / Debug Configuration -> Application Android -> General -> Activity -> sélectionnez l'option "Do not launch Activity".

TouchBoarder
la source
3
C'est la solution lorsque le projet est un service ou n'a aucune activité par défaut pour une autre raison.
Aharon Manne
2
Dans Android Studio 2.2.3; Exécuter / Déboguer la configuration -> Application Android -> myApp -> Général -> Options de lancement -> Lancement: Rien
liteflier
21

Rien au-dessus ne m'a aidé. Après un certain temps, j'ai trouvé que IDEA a changé les noms des actions en majuscules. Comme:

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

Après être revenu à la normale, IDEA reconnaît l'activité par défaut:

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

Assurez-vous d'abord que vous avez inclus l'activité par défaut dans le manifeste.

Exemple:

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

Si vous avez tout essayé et que rien ne semble fonctionner, alors

  • Supprimez le cache de votre% Home% \. Gradle \ caches et synchronisez à nouveau le projet.

Ou vérifiez cette réponse

https://stackoverflow.com/a/53476487/5507705

Salman
la source
1
Android Studio 3.2.1: Fichier -> Projet de synchronisation avec les fichiers Gradle ::: J'ai dû le faire après avoir invalidé le cache et redémarré avant que le problème ne disparaisse.
Kreebog
1
Cela a fonctionné pour moi. Je pense que cela a provoqué le déplacement de mon activité principale vers un répertoire différent, en aval de la racine.
Shn_Android_Dev
12

Dans mon cas, File -> Invalidate Caches / Restart...n'a pas aidé

Tout allait bien avec mon projet et bien sûr j'avais le prochain filtre d'intention pour mon activité

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

Ce qui m'a vraiment aidé, c'est la suppression des dossiers de cache Android / Gradle (ils peuvent atteindre 10 à 30 Go)

Accéder aux C:\Users\YOUR_USER_WINDOWS_NAMEdossiers suivants et les supprimer

  • .Android
  • .AndroidStudio3.2
  • .gradle

(vous pouvez enregistrer certaines configurations Android .AndroidStudio3.2avant de les supprimer si vous le souhaitez)

Vous pouvez créer un fichier bat CLEAR_CACHE.cmdcomme celui-ci pour supprimer des dossiers sans Corbeille

rmdir /S /Q .android
rmdir /S /Q .AndroidStudio3.2
rmdir /S /Q .gradle

cela fonctionnerait beaucoup plus rapidement et vous n'avez pas besoin de le supprimer également de la corbeille

ps mis CLEAR_CACHE.cmdenC:\Users\YOUR_USER_WINDOWS_NAME

c'est aussi une bonne idée de supprimer le dossier Android Studio et de le télécharger à nouveau

user924
la source
11

Cette méthode fonctionne pour moi Cliquez sur l'icône de l'application, puis choisissez modifier les configurations. Dans la configuration d'édition, choisissez l'activité spécifiée au lieu de l'activité par défaut. Donnez ensuite le chemin de l'activité ci-dessous.

Cliquez sur l'application et modifiez la configuration

Choisissez l'activité spécifiée et l'annuaire

En fin de compte, synchronisez avec les fichiers Gradle.

Durgaprasad Nagarkatte
la source
8

J'ai changé mon filtre d'intention en

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

Ajoutez simplement l'option DEFAULT également. J'utilisais la bibliothèque Process Phoenix et cela m'a incité à définir une intention par défaut. Cet ajout a résolu mon problème.

Rorschach
la source
7

J'ai eu cette erreur.

Et constaté que dans le fichier manifeste de l'activité du lanceur, je ne l'ai pas mis actionet categorydans le filtre d'intention.

Le mauvais:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>

Le bon:

<activity
android:name=".VideoAdStarter"
android:label="@string/app_name">

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

</activity>
mehmoodnisar125
la source
7

Quittez Android Studio.

Aller au chemin C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Supprimer le dossier / caches et le dossier / tmp

Abhishek Garg
la source
6

@TouchBoarder l'a presque eu. Bien que la sélection de "Ne pas lancer d'activité" n'entraîne aucun lancement.

Dans Android Studio sous Run / Debug Configuration -> Application Android -> General -> Activity -> sélectionnez l'option "Launch:"

Choisissez votre activité. Cela ne corrige pas exactement le comportement prévu, mais le remplace plutôt correctement.

Modifier les configurations d'exécution / débogage et spécifier l'activité de lancement

John
la source
4

Dans le cas où votre application n'a pas d'activité (uniquement un service par exemple), modifiez l'option 'Lancer' de la configuration d'exécution / débogage sur Rien.

noir
la source
4

J'ai trouvé cela dans mon code:

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

Si vous regardez très attentivement, ce devrait être le cas <activity android:name=".MainActivity">.

Apparemment, j'ai refactorisé une "activité" quelque part, et cela a également changé les noms dans le AndroidManifest.

Muz
la source
dans mon cas, le changement de nom de FilterClasses a conduit aux balises <intent-filterList> :)
Emanuel
2
Soyez très prudent lors de la refactorisation de vos codes. dans mon propre cas, j'ai par erreur refactorisé «catégorie» en «téléphone» ainsi, android.intent.category a été changé en android.intent.phone.
Kenny Dabiri
4

J'ai trouvé ce blog qui a vraiment résolu ce problème dans mon cas. Il s'avère que vous devez ajouter une sorte d'intention:

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

C'était vraiment simple. Référence:

https://www.aboutonline.info/2018/08/08/error-running-app-default-activity-not-found-on-android-with-kotlin.html

Le site Web est amusant
la source
4

Toutes les réponses ci-dessus ne m'ont pas aidé. Essayez de supprimer cela

<?xml version="1.0" encoding="utf-8"?>

dans votre AndroidManifest. Alors:

File > Sync Project with Gradle Files
Vladislaw Vivaldy
la source
J'ai compris que ça Syncing Project With Gradle Filesfonctionnait bien comme vin. Au fait, mon erreur est survenue de nulle part.
homerun
4

Dans mon cas , je refactorisé une variable membre qui a été nommé « activité », je retitré à « contexte » ... J'ai découvert que le refactoring a été faite à l' activité des balises dans le manifeste, et je les trouvais contexte balises à la place ... c'est vraiment stupide d'Android Studio!

Ahmed Adel Ismail
la source
2
ceci est un bug du studio Android, vous avez raison @tere bentikh
mayank_droid
3

J'ai le même problème dans Android Studio 3.3 Canary 3. Le projet de la version stable d'Android Studio 3.0 fonctionne tout d'abord correctement, qu'après quelques nettoyages / reconstructions, il commence à montrer aucune erreur d'activité par défaut. J'ai essayé de réinstaller cette version alpha d'Android Studio: erreur à nouveau. Mais ensuite, il a commencé dans un vieux Android stable et en utilisant l'installation d'apk, et cette apk fonctionne correctement.

De plus mon projet a été créé avec Instant App (base, fonctionnalité, instantané, sous-répertoires d'application). Je pense qu'Android Studio a des problèmes avec les fichiers Manifest.xml séparés dans ces multiples répertoires.

J'ai donc changé les paramètres en ceci: entrez la description de l'image ici

Michał Ziobro
la source
3

Depuis Android Studio, 3.5 or 3.6j'ai commencé à obtenir le Default Activity not foundet j'étais fatigué de Invalidating Caches & Restartreconstruire le projet, etc.

Il s'est avéré que la façon dont je gère les multi-modules et les manifestes était erronée. J'avais le manifeste d'activité par défaut dans le module de bibliothèque uniquement, mais il aurait dû être dans les deux modules d'application.

En supposant librarymodule appmodule1 appmodule2

  1. Supprimer HomeActivitydu librarymodulemanifeste que ce soit.
  2. Ajouter:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. Au appmodule1manifeste à l'intérieur de la applicationbalise, j'ai ajouté:
        <activity
            android:name="com.app.name.AppModuleActivity1">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  1. Idem appmodule2mais changez 2 pour 1 dans la dénomination.
Przemo
la source
2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

Ça marche pour moi. Reconstruisez le projet pour vous assurer qu'il n'y a aucune erreur dans le projet. Ensuite, nous pouvons invalider le cache.

Artyom
la source
2

Erreur: activité par défaut introuvable

J'ai résolu de cette façon
Exécuter >> Modifier la configuration >> Application Android >> Entrez le chemin de votre classe d'activité par défaut dans la boîte de dialogue "Lancer".

Lokesh Tiwari
la source
2

vient de faire face à cette erreur sur android studio 2.1.2. résolu en ajoutant le filtre d'intention MAIN / LAUNCHER à l'activité par défaut dans le manifeste de saveur , bien que le filtre était déjà dans l'activité par défaut dans le manifeste par défaut. Il était même dans un manifeste fusionné, mais le studio ne peut pas le trouver tant que je n'ai pas dupliqué le filtre dans les deux manifestes.

mjollneer
la source
2

mon expérience: assurez-vous que tout votre fichier java a été identifié, si IDEA n'identifie pas votre fichier java, afin qu'il ne puisse pas comprendre ce que signifie "Activité"

bonne chance :)

entrez la description de l'image ici

jianwei-x
la source
2

Eh bien, j'ai aussi cette erreur,

Erreur: activité par défaut introuvable

bien dans mon cas c'était pour le module d'usure .. Je n'ai pas besoin d'une activité là-bas donc ce que je fais est simplement

  1. allez pour modifier la configuration -> porter-> Options de lancement-> Lancer-> Rien.
  2. Appliquer les modifications.Cliquez sur OK.
  3. Supprimez le code existant pour l'activité par défaut de votre fichier manifeste.

Remarque: N'oubliez pas de nettoyer le projet et de synchroniser les fichiers Gradle.

PN10
la source
2

Modifier androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.java2">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivityName">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Tasdemir
la source
pourriez-vous développer cette réponse? Juste un bloc de code n'est pas très utile
Azsgy
2

Parfois, cette erreur est due à un mauvais comportement du studio Android à cause du cache interne et du système de construction de projet. Même nous avons tout réglé pour une activité par défaut. Pour un tel problème, j'ai trouvé une solution et cela fonctionne pour moi.

Étape 1. Android Studio ---> Fichier -> Cache non valide et studio Android fermé.

Étape 2.Accédez au chemin C: \ Users \ USER.AndroidStudio3.2 \ system

Étape 3. Changer le nom avec l'extension .back du dossier ci-dessous Exemple: le compilateur doit être compiler.back

  • compilateur
  • serveur de compilation
  • conversion
  • external-build_system
  • cadre
  • gradle
  • resource_folder_cache

Étape 4: Démarrez Android studio et ouvrez votre projet.

J'espère que cela fonctionnera pour vous.

Abhay Bhusari
la source
1
C'était la seule réponse qui a fonctionné pour moi, mais en plus du processus décrit ici, vous devez supprimer le contenu du dossier "system / caches" sinon cela ne fonctionne que la première fois après avoir terminé le processus et redémarré Android Studio, puis il est revenu à se produire la même activité par défaut introuvable.
Gerrard
La seule option qui a fonctionné pour moi. Cela s'est produit après une réinitialisation matérielle de l'ordinateur, qui a probablement corrompu certains fichiers comme vous l'avez dit. L'autre option était de réinstaller Android Studio, mais heureusement, effacer les dossiers que vous avez spécifiés suffit.
RJFares
2

Le projet de synchronisation avec les fichiers Gradle fonctionne parfois, pour résoudre ce problème général, vous devez

  1. Quittez Android Studio
  2. Allez dans UTILISATEUR -> AndroidStudio -> système -> caches
  3. Supprimer ce dossier
  4. Démarrez Android Studio.

Il ré-indexera vos fichiers et cela devrait fonctionner

Merci à kirtan403 d'une question similaire.

Home Run
la source