"Attività predefinita non trovata" sull'aggiornamento di Android Studio


463

Ho aggiornato IntelliJ Idea da 12.0.4 a 12.10.

Ora tutti i moduli nel mio progetto Android danno l'errore:

Errore: attività predefinita non trovata

Sono tornato alla 12.0.4 e tutto funziona di nuovo.

Qualche idea? Penso che potrebbe essere un problema con un plugin mancante. Poiché il plug-in non è installato, non è in grado di trovare l'attività predefinita. Un'altra cosa avrebbe potuto essere una configurazione locale, ma ne dubito. Ho eliminato la cartella di configurazione per verificare e che non ha cambiato nulla.


3
hai visto il manifest? forse il passaggio da una versione all'altra l'ha cancellato o qualcosa del genere? developer.android.com/guide/components/fundamentals.html
— MaxOvrdrv

No ... ma ho funzionato con 12.0.4 ma reimportando il progetto da zero.
— Saad Farooq,

2
Manifest è la chiave, probabilmente un errore di nome o omissione o un problema di spazio dei nomi
— slezica

Un problema manifest in tutti e sette i moduli del progetto che 12.0.4 funziona correttamente ma 12.10 no ??
— Saad Farooq,

No, ma un cambiamento in uno spazio dei nomi o qualcosa del layout del progetto, ad esempio, potrebbe non essere stato sincronizzato con manifest
— slezica

Risposte:


889

Se viene visualizzato l'errore dopo l'aggiornamento delle versioni di IntelliJ IDEA o Android Studio o dopo aver generato un nuovo APK, potrebbe essere necessario aggiornare la cache dell'IDE.

File -> Invalidate Caches / Restart...

2
Puoi anche provare a presentare un bug qui: youtrack.jetbrains.com/issues/IDEA Trovo che siano molto bravi a dare seguito ai bug che ho segnalato .
— Sky Kelsey

Penso che fosse così ... Continuerò a indagare ... Non ho avuto il tempo di riaprire la directory come nuovo progetto in ciascuna delle piattaforme.
— Saad Farooq,

Sto avendo lo stesso problema. Nel mio file manifest, viene visualizzato anche un errore "Impossibile risolvere il simbolo 'MainActivity'". Ho importato il progetto da Eclipse.
— Roberto,

28
Questo ha funzionato per me in Android Studio, ma dopo il riavvio ho dovuto anche fare Strumenti -> Android -> Sincronizza progetto con file Gradle.
— vaughandroid,

3
Dai
— Ninja

304

Non posso commentare perché l'aggiornamento di IntelliJ potrebbe causare questo problema perché non lo uso.

Tuttavia, quell'errore: "Attività predefinita non trovata" sembra dirti che non hai un'attività dichiarata in AndroidManifest.xml contrassegnata come attività principale, da avviare all'avvio dell'applicazione.

Dovresti avere almeno un'attività che assomigli a questa:

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

Se non hai almeno un'attività con un filtro intento del genere, molto probabilmente visualizzerai il messaggio di errore che hai incluso qui.

È necessario aggiungere quel filtro di intenti all'attività che si desidera aprire all'avvio dell'applicazione e questo dovrebbe risolvere il problema.


formica lo costruisce bene, così come IntelliJ 12.0.4
— Saad Farooq,

Ho avviato la mia app in Eclipse, sì, ho un'attività predefinita. Ho importato la mia app su Android Studio andava bene fino a quando un giorno ho aggiunto il gestore delle notifiche e roba del genere, cioè quando ho riscontrato questo errore. Ho fatto File-> Cache invalida-> Riavvia e questo l'ha risolto. Ma l'errore non è stato causato dalla mancanza di attività predefinita come hai affermato.
— The_Martian

Ha funzionato anche per me! MA NOTA: per favore scrivi "android.intent.xxx" in lettere minuscole - la mia colpa è stata che il completamento di Android Studio ha suggerito lettere maiuscole (mi ci è voluta un'ora) :-(
— Philipp P

22
Per coloro che sono relativamente nuovi su Android e hai appena rovinato il tuo progetto Android Studio, questa è la risposta che stai cercando. La risposta accettata è quando un aggiornamento ha rovinato tutto per te.
— Tom Kidd,

3
Ho impostato questo e il mio progetto è già stato eseguito molte volte e si sbaglia improvvisamente. Non so dove sia sbagliato. Forse, è potenzialmente un bug di AS.
— Licat Julius,

81

L'app ha attività di avvio predefinita?

forse questo potrebbe essere il tuo errore

inserisci qui la descrizione dell'immagine

Passaggio 1 : selezionare Modifica configurazioni

inserisci qui la descrizione dell'immagine

Passaggio 2 : osservare questo avviso: attività predefinita non trovata inserisci qui la descrizione dell'immagine

Passaggio 3 : selezionare un'attività predefinita inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Passaggio 3 : salva le modifiche e termina

inserisci qui la descrizione dell'immagine

In bocca al lupo

inserisci qui la descrizione dell'immagine


Buona risposta! Questo è utile se non ci sono attività nell'app. (solo servizio). è necessario modificare "attività" per "non avviare l'attività"
— Udi Reshef,

Questa è l'unica risposta che ha funzionato per le app senza attività. Grazie.
— Sephiron,

Questo ha funzionato per me! In realtà avevo un'attività predefinita nel manifest, ma per qualche ragione Android Studio non l'ha trovata.
— Ocramot,

2
Ho seguito i passaggi di cui sopra ma ora dice "L'attività 'MainActivity' non è dichiarata in AndroidManifest.xml" sebbene MainActivity sia presente
— Far

Questa risposta è stata facile da seguire. Anche il commento di @Udi Reshef ringrazia
— Bishwas Mishra il

66

Il modo corretto per farlo è aggiungere quanto segue al file manifest:

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

Questo dovrebbe essere inserito tra:

<application> </application>

Non è necessario invalidare la cache.


Ha funzionato anche per me! MA NOTA: per favore scrivi "android.intent.xxx" in lettere minuscole - la mia colpa è stata che il completamento di Android Studio ha suggerito lettere maiuscole (mi ci è voluta un'ora) :-(
— Philipp P

Un buon punto: "Questo dovrebbe essere inserito tra: <application> </application>". Questo era il mio problema. Molte grazie.
— Dennis Mathew,

Fai molta attenzione quando esegui il refactoring dei tuoi codici. nel mio caso, ho erroneamente refactored 'categoria' come 'telefono', quindi android.intent.category è stata cambiata in android.intent.phone.
— Kenny Dabiri,

Ho usato la procedura guidata per la creazione di progetti Android Studio e dovevo ancora farlo manualmente. Sbaglio nel pensare che si tratti di un bug?
— pdoherty926,


44

Prova a fare clic con il pulsante destro del mouse sul progetto e scegli Apri le impostazioni del modulo . Quindi vai alla scheda Sorgenti nel tuo modulo, trova la cartella src , fai clic destro su di essa e contrassegnala come Sorgenti (colore blu).

EDIT: nelle versioni successive di Android Studio non è presente la scheda Origini , ma è invece possibile modificare il file build.gradle : https://stackoverflow.com/a/22028681/1101730


Questo mi ha aiutato, mi sono reso conto che intellij ha lasciato cadere molti file sorgente da src nella scheda Sorgenti. Ho spostato il mio pacchetto dal progetto e ho ripreso il lavoro. Ciò ha risolto il mio problema
— Jesse Black,

2
Ho fatto lo stesso tipo di cose, ma ho fatto clic con il pulsante destro del mouse sulla cartella src e sono andato su "Segna directory come ..." e poi su "Sorgenti radice". - Android Studio 0.8.6
— elliptic1

1
Funziona come un incantesimo, ha rimosso la radice corrente e ha aggiunto di nuovo la cartella principale di src e gen
— Udi Oshi,

1
un modo rapido per accedere alle impostazioni del modulo è fare clic nel navigatore del progetto e premere F4
— whyoz

3
questo è deprecato poiché non esiste più la scheda Sorgenti in Open Module Settings .
— Buddy,

23

In Android Studio in Esegui / Debug Configurazione -> Applicazione Android -> Generale -> Attività -> seleziona l'opzione "Non avviare attività".


3
Questa è la soluzione quando il progetto è un servizio o non ha attività predefinite per altri motivi.
— Aharon Manne,

2
In Android Studio 2.2.3; Configurazione Esegui / Debug -> App Android -> myApp -> Generale -> Opzioni di avvio -> Avvia: Nothing
— liteflier

21

Niente sopra mi ha aiutato. Dopo qualche tempo ho scoperto che IDEA ha cambiato i nomi delle azioni in maiuscolo. Piace:

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

Dopo essere tornato alla normalità, IDEA riconosce l'attività predefinita:

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

19

Innanzitutto assicurati di aver incluso l'attività predefinita in manifest.

Esempio:

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

Se hai provato tutto e nulla sembra funzionare, allora

  • Elimina la cache dal tuo% Home% \. Gradle \ cache e sincronizza nuovamente il progetto.

O controlla questa risposta

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


1
Android Studio 3.2.1: File -> Sincronizza progetto con file Gradle ::: Ho dovuto farlo dopo aver invalidato la cache e aver riavviato prima che il problema fosse scomparso.
— Kreebog,

1
Questo ha funzionato per me. Ciò che credo abbia causato questo è stato il trasferimento della mia attività principale in una directory diversa, a valle della radice.
— Shn_Android_Dev

11

Questo metodo funziona per me Fai clic sull'icona dell'app e quindi scegli modifica configurazioni. Nella modifica-configurazione scegliere l'attività specificata anziché l'attività predefinita. Quindi fornire il percorso dell'attività sottostante.

Fai clic sull'app e modifica la configurazione

Scegli l'attività specificata e la directory

Alla fine sincronizzare con i file gradle.


11

Nel mio caso File -> Invalidate Caches / Restart... non ha aiutato

Tutto andava bene per il mio progetto e ovviamente avevo il prossimo filtro di intenti per la mia attività

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

Ciò che mi ha veramente aiutato è l'eliminazione delle cartelle della cache Android / Gradle (possono crescere fino a 10-30 GB)

Vai a C:\Users\YOUR_USER_WINDOWS_NAMEed elimina le cartelle successive

  • .android
  • .AndroidStudio3.2
  • .gradle

(puoi salvare alcune configurazioni Android da .AndroidStudio3.2 prima di eliminarlo se lo si desidera)

È possibile creare un file bat CLEAR_CACHE.cmdcome questo per eliminare le cartelle senza Cestino

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

funzionerebbe molto più velocemente e non dovrai eliminarlo anche dal Cestino

ps messo CLEAR_CACHE.cmdinC:\Users\YOUR_USER_WINDOWS_NAME

è anche una buona idea eliminare la cartella Android Studio e scaricarla di nuovo


8

Ho cambiato il mio filtro intento in

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

Aggiungi anche l'opzione DEFAULT. Stavo usando la libreria Process Phoenix e mi ha spinto a definire un intento predefinito. Questa aggiunta ha risolto il mio problema.


7

Ho ricevuto questo errore.

E ho scoperto che nel file manifest nell'attività di avvio non ho inserito actione categorynel filtro intenti.

Quello sbagliato:

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

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

</activity>

Il giusto:

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

7

Esci da Android Studio.

Vai al percorso C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Rimuovere la cartella / cache e la cartella / tmp


6

@TouchBoarder ce l'aveva quasi. Anche se selezionando "Non avviare l'attività" non si avvia nulla.

In Android Studio in Esegui / Debug Configurazione -> Applicazione Android -> Generale -> Attività -> seleziona l'opzione "Avvia:"

Scegli la tua attività. Questo non risolve esattamente il comportamento previsto ma piuttosto lo sovrascrive correttamente.

Modifica le configurazioni di esecuzione / debug e specifica l'attività di avvio


4

Nel caso in cui l'applicazione non disponga di un'attività (ad esempio solo un servizio), modificare l'opzione "Avvia" della configurazione di esecuzione / debug su Nothing.


4

Ho trovato questo nel mio codice:

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

Se guardi con molta attenzione, dovrebbe essere <activity android:name=".MainActivity"> invece.

Apparentemente, ho effettuato il refactoring di qualche "attività" da qualche parte, e ha cambiato anche i nomi in AndroidManifest.


nel mio caso la ridenominazione di FilterClasses ha portato ai tag <intent-filterList> :)
— Emanuel,

2
Fai molta attenzione quando esegui il refactoring dei tuoi codici. nel mio caso, ho erroneamente refactored 'categoria' come 'telefono', quindi android.intent.category è stata cambiata in android.intent.phone.
— Kenny Dabiri,


4

Tutte le risposte sopra non mi hanno aiutato. Prova a rimuoverlo

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

nel tuo AndroidManifest. Poi:

File > Sync Project with Gradle Files

Ho capito che Syncing Project With Gradle Filesfunzionava bene come vino. A proposito, il mio errore si è verificato dal nulla.
— Homerun,

4

Nel mio caso ho refactored una variabile membro che è stata chiamata "attività", l'ho rinominata in "contesto" ... Ho scoperto che il refactor è stato creato per i tag attività in manifest, e invece ho trovato i tag di contesto ... questo è davvero stupido da Android Studio!


2
questo è un bug di Android Studio, hai ragione @tere bentikh
— mayank_droid

3

Ho lo stesso problema in Android Studio 3.3 Canarie 3. Il progetto dalla versione stabile di Android Studio 3.0 funziona inizialmente correttamente, che dopo alcune pulizie / ricostruzioni inizia a mostrare nessun errore di attività predefinita. Ho provato a reinstallare questa versione alpha di Android Studio: errore di nuovo. Ma poi è iniziato nel vecchio stabile Android, e usando apk install, e questo apk funziona correttamente.

Inoltre il mio progetto è stato creato con App istantanea (base, funzionalità, istantanea, sottodirectory app). Penso che questo Android Studio abbia alcuni problemi con i file Manifest.xml separati in queste directory multiple.

Quindi ho cambiato le impostazioni in questo: inserisci qui la descrizione dell'immagine


3

Da Android Studio 3.5 or 3.6ho iniziato a Default Activity not founddiventare stanco e mi sono stancato di Invalidating Caches & Restartricostruire progetti ecc.

Si è scoperto che il modo in cui gestisco i multi-moduli e i manifest era errato. Avevo il Manifest di attività predefinito solo nel modulo libreria, ma avrebbe dovuto essere presente in entrambi i moduli dell'app.

assumendo librarymodule appmodule1 appmodule2

  1. Rimuovi HomeActivityda librarymoduleManifest di sorta.
  2. Inserisci:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. A appmodule1Manifest all'interno del applicationtag, ho aggiunto:
        <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. Lo stesso vale appmodule2ma cambia 2 per 1 nella denominazione.

2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

Per me funziona. Ricostruire il progetto per assicurarsi che non vi siano errori nel progetto. Quindi possiamo invalidare la cache.


2

Errore: attività predefinita non trovata

Ho risolto in questo modo
Esegui >> Modifica configurazione >> Applicazione Android >> Immettere il percorso della classe di attività predefinita nella casella di modifica "Avvia".


2

ho appena riscontrato questo errore su Android Studio 2.1.2. risolto aggiungendo MAIN / lanciatore intent-filtro per l'attività di difetto in sapore manifesta, sebbene filtro già sia in attività di difetto in manifesta predefinito. Era anche in manifest unito, ma studio non è riuscito a trovarlo fino a quando non ho duplicato il filtro in entrambi i manifest.


2

la mia esperienza: assicurati che tutto il tuo file java sia stato identificato, se IDEA non identifica il tuo file java, quindi non è in grado di capire cosa significa "Attività"

in bocca al lupo :)

inserisci qui la descrizione dell'immagine


2

Bene ho anche questo errore,

Errore: attività predefinita non trovata

bene nel mio caso era per il modulo di usura .. Non ho bisogno di un'attività lì, quindi quello che faccio è semplicemente

  1. vai a modificare la configurazione -> wear-> Opzioni di avvio-> Launch-> Nothing.
  2. Applica modifiche. Fai clic su OK.
  3. Rimuovi il codice esistente per l'attività predefinita dal tuo file manifest.

Nota: non dimenticare di pulire il progetto e sincronizzare i file di livello.


2

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

potresti espandere questa risposta? Solo un blocco di codice non è molto utile
— Azsgy

2

A volte questo errore a causa del comportamento scorretto di Android Studio a causa della cache interna e del sistema di creazione del progetto. Anche noi abbiamo impostato tutto perfetto per l'attività predefinita. Per tale problema, ho trovato una soluzione e funziona per me.

Passaggio 1. Android Studio ---> File -> Cache non valida e Android Studio chiuso.

Passo 2. Vai al percorso C: \ Users \ USER.AndroidStudio3.2 \ system

Passaggio 3. Modifica nome con estensione .back della cartella sottostante Esempio: compilatore dovrebbe essere compiler.back

  • compilatore
  • compilatore server
  • conversione
  • external-build_system
  • struttura
  • Gradle
  • resource_folder_cache

Passaggio 4: avviare Android Studio e aprire il progetto.

Spero che funzionerà per te.


1
Questa è stata l'unica risposta che ha funzionato per me, ma oltre al processo descritto qui, è necessario rimuovere il contenuto della cartella "sistema / cache", altrimenti funziona solo la prima volta dopo aver completato il processo e riavviare Android Studio, quindi è tornato per accadere lo stesso, attività predefinita non trovata.
— Gerrard,

L'unica opzione che ha funzionato per me. È successo dopo un ripristino del computer, che probabilmente ha danneggiato alcuni file come hai detto. L'altra opzione era quella di reinstallare Android Studio, ma per fortuna è sufficiente cancellare le cartelle specificate.
— RJFares

2

Sincronizza Project With Gradle Files funziona a volte, per risolvere questo problema generale dovresti

  1. Esci da Android Studio
  2. Vai su UTENTE -> AndroidStudio -> sistema -> cache
  3. Elimina quella cartella
  4. Avvia Android Studio.

Indicizzerà nuovamente i tuoi file e dovrebbe funzionare

Grazie a kirtan403 da una domanda simile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.