"Standardaktivität nicht gefunden" beim Upgrade von Android Studio


463

Ich habe IntelliJ Idea von 12.0.4 auf 12.10 aktualisiert.

Jetzt geben alle Module in meinem Android-Projekt den Fehler:

Fehler: Standardaktivität nicht gefunden

Ich kehrte zu 12.0.4 zurück und es funktioniert alles wieder.

Irgendwelche Ideen? Ich denke, es könnte ein Problem mit einem fehlenden Plugin sein. Da das Plugin nicht installiert ist, kann es die Standardaktivität nicht finden. Eine andere Sache könnte eine lokale Konfiguration gewesen sein, aber ich bezweifle es. Ich habe den Konfigurationsordner gelöscht, um zu überprüfen, und das hat nichts geändert.


3
Hast du dir das Manifest angesehen? Vielleicht haben Versionenwechsel es geklärt oder so? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv

Nein ... aber ich habe es mit 12.0.4 zum Laufen gebracht, aber das Projekt von Grund auf neu importiert.
Saad Farooq

2
Manifest ist der Schlüssel, wahrscheinlich ein
Namensfehler

Ein offensichtliches Problem in allen sieben Modulen des Projekts, dass 12.0.4 korrekt ausgeführt wird, 12.10 jedoch nicht?
Saad Farooq

Nein, aber eine Änderung in einem Namespace oder einem Projektlayout zum Beispiel ist möglicherweise nicht mehr mit dem Manifest synchronisiert
slezica

Antworten:


889

Wenn dieser Fehler nach dem Aktualisieren von Versionen von IntelliJ IDEA oder Android Studio oder nach dem Generieren eines neuen APK auftritt, müssen Sie möglicherweise den Cache der IDE aktualisieren.

File -> Invalidate Caches / Restart...

2
Sie können auch versuchen, hier einen Fehler zu melden : youtrack.jetbrains.com/issues/IDEA Ich finde, dass sie sehr gut darin sind, von mir eingereichte Fehler zu verfolgen .
Sky Kelsey

Ich denke, das war es ... Ich werde weiter nachforschen ... Ich hatte keine Zeit, das Verzeichnis als neues Projekt auf jeder der Plattformen erneut zu öffnen.
Saad Farooq

Ich habe das gleiche Problem. In meiner Manifestdatei wird außerdem der Fehler "Symbol 'MainActivity' kann nicht aufgelöst werden" angezeigt. Ich habe das Projekt aus Eclipse importiert.
Roberto

28
Dies funktionierte für mich in Android Studio, aber nach dem Neustart musste ich auch Tools -> Android -> Projekt mit Gradle-Dateien synchronisieren ausführen.
Vaughandroid


304

Ich kann nicht kommentieren, warum das Upgrade von IntelliJ dieses Problem verursachen könnte, da ich es nicht verwende.

Dieser Fehler: "Standardaktivität nicht gefunden" scheint jedoch darauf hinzudeuten, dass in AndroidManifest.xml keine Aktivität deklariert ist, die als Hauptaktivität markiert ist und beim Start der Anwendung gestartet werden soll.

Sie sollten mindestens eine Aktivität haben, die ungefähr so ​​aussieht:

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

Wenn Sie nicht mindestens eine Aktivität mit einem solchen Absichtsfilter haben, wird höchstwahrscheinlich die Fehlermeldung angezeigt, die Sie hier angegeben haben.

Sie sollten diesen Absichtsfilter zu der Aktivität hinzufügen, die Sie beim Starten der Anwendung öffnen möchten, und das sollte Ihr Problem beheben.


Ameise baut es gut und IntelliJ 12.0.4
Saad Farooq

Ich habe meine App in Eclipse gestartet. Ja, ich habe eine Standardaktivität. Ich habe meine App in Android Studio importiert. Es war in Ordnung, bis ich eines Tages einen Benachrichtigungsmanager und andere Dinge hinzufügte. Dann stieß ich auf diesen Fehler. Ich habe File-> Invalidate cach-> Restart gemacht und das hat es behoben. Der Fehler wurde jedoch nicht durch das Fehlen der von Ihnen angegebenen Standardaktivität verursacht.
The_Martian

Hat auch für mich gearbeitet! ABER HINWEIS: Bitte schreiben Sie "android.intent.xxx" in Kleinbuchstaben - mein Fehler war, dass die Fertigstellung von Android Studio Großbuchstaben vorschlug (dies dauerte eine Stunde) :-(
Philipp P

22
Für diejenigen, die noch relativ neu in Android sind und gerade Ihr Android Studio-Projekt vermasselt haben, ist dies die Antwort, nach der Sie suchen. Die akzeptierte Antwort ist, wenn ein Upgrade die Dinge für Sie vermasselt hat.
Tom Kidd

3
Ich habe dies eingestellt und mein Projekt läuft bereits viele Male und es wird plötzlich falsch. Ich weiß nicht, wo falsch ist. Vielleicht ist es ein potenzieller Fehler von AS.
Licat Julius

81

Ihre App hat standardmäßig Startaktivität?

Möglicherweise könnte dies Ihr Fehler sein

Geben Sie hier die Bildbeschreibung ein

Schritt 1 : Wählen Sie Konfigurationen bearbeiten

Geben Sie hier die Bildbeschreibung ein

Schritt 2 : Beachten Sie diese Warnung: Standardaktivität nicht gefunden Geben Sie hier die Bildbeschreibung ein

Schritt 3 : Wählen Sie eine Standardaktivität aus Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Schritt 3 : Speichern Sie Ihre Änderungen und beenden Sie

Geben Sie hier die Bildbeschreibung ein

Viel Glück

Geben Sie hier die Bildbeschreibung ein


Gute Antwort! Dies hilft, wenn die App keine Aktivität enthält. (nur Service). Sie müssen in "Aktivität" ändern, um "Aktivität nicht zu starten"
Udi Reshef

Dies ist die einzige Antwort, die für Apps ohne Aktivität funktioniert hat. Vielen Dank.
Sephiron

Das hat bei mir funktioniert! Ich hatte tatsächlich eine Standardaktivität im Manifest, aber aus irgendeinem Grund hat Android Studio das nicht gefunden.
Ocramot

2
Ich habe die oben genannten Schritte befolgt, aber jetzt heißt es "Die Aktivität 'MainActivity' ist in AndroidManifest.xml nicht deklariert", obwohl MainActivity dort ist
Far

Diese Antwort war leicht zu folgen. Auch der Kommentar von @Udi Reshef danke
Bishwas Mishra

66

Der richtige Weg, dies zu tun, besteht darin, der Manifest-Datei Folgendes hinzuzufügen:

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

Dies sollte eingefügt werden zwischen:

<application> </application>

Keine Notwendigkeit, Caches ungültig zu machen.


Hat auch für mich gearbeitet! ABER HINWEIS: Bitte schreiben Sie "android.intent.xxx" in Kleinbuchstaben - mein Fehler war, dass die Fertigstellung von Android Studio Großbuchstaben vorschlug (dies dauerte eine Stunde) :-(
Philipp P

Guter Punkt: "Dies sollte eingefügt werden zwischen: <Anwendung> </ Anwendung>". Das war mein Problem. Vielen Dank.
Dennis Mathew

Seien Sie sehr vorsichtig, wenn Sie Ihre Codes umgestalten. In meinem Fall habe ich fälschlicherweise 'Kategorie' als 'Telefon' umgestaltet, daher wurde android.intent.category in android.intent.phone geändert.
Kenny Dabiri

Ich benutzte Assistent Android Studio Projekterstellung und noch hatte diese manuell zu tun. Bin ich falsch zu denken, dass das ein Fehler ist?
pdoherty926


44

Versuchen Sie, mit der rechten Maustaste auf das Projekt zu klicken und Moduleinstellungen öffnen zu wählen . Gehen Sie dann zur Registerkarte Quellen in Ihrem Modul und suchen Sie den src Ordner , klicken Sie mit der rechten Maustaste darauf und markieren Sie ihn als Quellen (blaue Farbe).

BEARBEITEN: In späteren Versionen von Android Studio gibt es keine Registerkarte "Quellen". Sie können jedoch stattdessen die Datei " build.gradle" bearbeiten : https://stackoverflow.com/a/22028681/1101730


Dies hat mir geholfen. Ich habe festgestellt, dass Intellij viele Quelldateien von der src auf der Registerkarte Quellen gelöscht hat. Ich habe mein Paket aus dem Projekt heraus und wieder
Jesse Black

2
Ich habe das Gleiche getan, aber ich habe mit der rechten Maustaste auf den Ordner src geklickt und bin zu "Verzeichnis als ... markieren" und dann zu "Quellenstamm" gegangen. - Android Studio 0.8.6
elliptic1

1
Funktioniert wie ein Zauber, entfernte das aktuelle Stammverzeichnis und fügte den übergeordneten Ordner von src und gen erneut hinzu
Udi Oshi

1
Ein schneller Weg, um auf die Moduleinstellungen zuzugreifen, besteht darin, in den Projektnavigator zu klicken und F4 zu drücken
whyoz

3
Dies ist veraltet, da unter Open Module Settings keine Registerkarte Sources mehr vorhanden ist.
Buddy

23

Wählen Sie in Android Studio unter Konfiguration ausführen / debuggen -> Android-Anwendung -> Allgemein -> Aktivität -> die Option "Aktivität nicht starten".


3
Dies ist die Lösung, wenn das Projekt ein Dienst ist oder aus einem anderen Grund keine Standardaktivität aufweist.
Aharon Manne

2
In Android Studio 2.2.3; Konfiguration ausführen / debuggen -> Android App -> myApp -> Allgemein -> Startoptionen -> Start: Nichts
liteflier

21

Nichts oben hat mir geholfen. Nach einiger Zeit stellte ich fest, dass IDEA die Aktionsnamen in Großbuchstaben geändert hatte. Mögen:

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

Nach der Rückkehr zum Normalzustand erkennt IDEA die Standardaktivität:

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

19

Stellen Sie zunächst sicher, dass Sie die Standardaktivität in das Manifest aufgenommen haben.

Beispiel:

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

Wenn Sie alles versucht haben und nichts zu funktionieren scheint, dann

  • Löschen Sie den Cache aus Ihrem% Home% \. Gradle \ Cache und synchronisieren Sie das Projekt erneut.

Oder überprüfen Sie diese Antwort

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


1
Android Studio 3.2.1: Datei -> Projekt mit Gradle-Dateien synchronisieren ::: Dies musste durchgeführt werden, nachdem der Cache ungültig gemacht und neu gestartet wurde, bevor das Problem behoben wurde.
Kreebog

1
Das hat bei mir funktioniert. Ich glaube, dies hat dazu geführt, dass meine Hauptaktivität in ein anderes Verzeichnis verschoben wurde, das dem Stamm nachgeschaltet ist.
Shn_Android_Dev

11

Diese Methode funktioniert bei mir Klicken Sie auf das App-Symbol und wählen Sie dann Konfigurationen bearbeiten. Wählen Sie in der Bearbeitungskonfiguration die angegebene Aktivität anstelle der Standardaktivität. Geben Sie dann den Pfad der Aktivität unten an.

Klicken Sie auf App und bearbeiten Sie die Konfiguration

Wählen Sie die angegebene Aktivität und das Verzeichnis

Am Ende mit den Gradle-Dateien synchronisieren.


11

In meinem Fall File -> Invalidate Caches / Restart...hat nicht geholfen

Bei meinem Projekt war alles in Ordnung und natürlich hatte ich den nächsten Vorsatzfilter für meine Aktivität

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

Was mir wirklich geholfen hat, ist das Löschen von Android / Gradle-Cache-Ordnern (sie können bis zu 10-30 GB groß werden).

Gehen Sie zu C:\Users\YOUR_USER_WINDOWS_NAMEund löschen Sie die nächsten Ordner

  • .Android
  • .AndroidStudio3.2
  • .gradle

(Sie können einige Android-Konfigurationen speichern, .AndroidStudio3.2bevor Sie sie löschen, wenn Sie dies möchten.)

Sie können eine solche Bat-Datei erstellen CLEAR_CACHE.cmd, um Ordner ohne Papierkorb zu löschen

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

es würde viel schneller funktionieren und Sie müssen es nicht auch aus dem Papierkorb löschen

ps setzen CLEAR_CACHE.cmdinC:\Users\YOUR_USER_WINDOWS_NAME

Es ist auch eine gute Idee, den Android Studio-Ordner zu löschen und erneut herunterzuladen


8

Ich habe meinen Intent-Filter auf geändert

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

Fügen Sie einfach auch die Option DEFAULT hinzu. Ich habe die Process Phoenix- Bibliothek verwendet und wurde aufgefordert, eine Standardabsicht zu definieren. Dieser Zusatz hat mein Problem gelöst.


7

Ich habe diesen Fehler bekommen.

Und fand heraus, dass ich in Manifest-Datei in Launcher-Aktivität nicht actionund category in Absicht Filter.

Das falsche:

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

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

</activity>

Richtige:

<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

Beenden Sie Android Studio.

Gehe zum Pfad C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Entfernen Sie die Ordner / caches und / tmp


6

@ TouchBoarder hatte es fast. Wenn Sie jedoch "Aktivität nicht starten" auswählen, wird nichts gestartet.

Wählen Sie in Android Studio unter Run / Debug Configuration -> Android Application -> General -> Activity -> die Option "Launch:"

Wählen Sie Ihre Aktivität. Dies behebt das beabsichtigte Verhalten nicht genau , sondern überschreibt es korrekt.

Bearbeiten Sie die Run / Debug-Konfigurationen und geben Sie die Startaktivität an


4

Wenn Ihre Anwendung keine Aktivität hat (z. B. nur einen Dienst), ändern Sie die Option "Start" der Ausführungs- / Debug-Konfiguration in "Nichts".


4

Ich habe das in meinem Code gefunden:

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

Wenn Sie sehr genau hinschauen, sollte es sein <activity android:name=".MainActivity"> stattdessen sein.

Anscheinend habe ich irgendwo eine "Aktivität" überarbeitet und die Namen im AndroidManifest geändert.


In meinem Fall führte die Umbenennung von FilterClasses zu den <intent-filterList> -Tags :)
Emanuel

2
Seien Sie sehr vorsichtig, wenn Sie Ihre Codes umgestalten. In meinem Fall habe ich fälschlicherweise 'Kategorie' als 'Telefon' umgestaltet, daher wurde android.intent.category in android.intent.phone geändert.
Kenny Dabiri


4

Alle obigen Antworten haben mir nicht geholfen. Versuchen Sie dies zu entfernen

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

in Ihrem AndroidManifest. Dann:

File > Sync Project with Gradle Files

Ich fand heraus, dass das Syncing Project With Gradle Filesals Wein gut funktionierte. Mein Fehler ist übrigens aus dem Nichts aufgetreten.
Homerun

4

In meinem Fall habe ich eine Mitgliedsvariable mit dem Namen "Aktivität" überarbeitet und in "Kontext" umbenannt. Ich habe herausgefunden, dass der Refaktor für die Aktivitäts- Tags im Manifest erstellt wurde, und stattdessen habe ich sie als Kontext- Tags gefunden. Das ist wirklich dumm von Android Studio!


2
Dies ist ein Fehler von Android Studio, Sie haben Recht @tere bentikh
mayank_droid

3

Ich habe das gleiche Problem in Android Studio 3.3 Canary 3. Das Projekt aus der stabilen Version von Android Studio 3.0 funktioniert zunächst korrekt, als nach einigen Bereinigungen / Neuerstellungen der Fehler "Keine Standardaktivität" angezeigt wird. Ich habe versucht, diese Alpha-Version von Android Studio neu zu installieren: Fehler erneut. Aber dann startete es in alten stabilen Android und mit apk installieren, und diese apk funktioniert richtig.

Außerdem wurde mein Projekt mit Instant App erstellt (Basis-, Feature-, Instant-, App-Unterverzeichnisse). Ich denke, dieses Android Studio hat einige Probleme mit Manifest.xml-Dateien, die in mehrere Verzeichnisse unterteilt sind.

Also habe ich in den Einstellungen folgendes geändert: Geben Sie hier die Bildbeschreibung ein


3

Seit Android Studio habe 3.5 or 3.6ich angefangen, das zu bekommen Default Activity not foundund ich habe es satt Invalidating Caches & Restart, Projekte usw. neu aufzubauen.

Es stellte sich heraus, wie ich mit Multimodulen und Manifesten umgehe fehlerhaft war. Ich hatte das Manifest der Standardaktivität nur im Bibliotheksmodul, aber es sollte in beiden App-Modulen enthalten sein.

Vorausgesetzt librarymodule appmodule1 appmodule2

  1. Entfernen HomeActivityvonlibrarymodule Manifest .
  2. Hinzufügen:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. Im appmodule1Inneren manifestierenapplication Tags , fügte ich hinzu:
        <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. Gleiches, appmodule2aber 2 für 1 in der Benennung ändern.

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

Für mich geht das. Erstellen Sie das Projekt neu, um sicherzustellen, dass keine Fehler im Projekt vorliegen. Dann können wir den Cache ungültig machen.


2

Fehler: Standardaktivität nicht gefunden

Ich habe diesen Weg gelöst.
Ausführen >> Konfiguration bearbeiten >> Android-Anwendung >> Geben Sie den Pfad Ihrer Standardaktivitätsklasse in das Bearbeitungsfeld "Starten" ein.


2

habe gerade diesen Fehler auf Android Studio 2.1.2 konfrontiert. Wird durch Hinzufügen des Absichtsfilters MAIN / LAUNCHER zur Standardaktivität im Flavour- Manifest gelöst , obwohl der Filter im Standardmanifest bereits in der Standardaktivität war. Es war sogar in einem zusammengeführten Manifest, aber Studio kann es nicht finden, bis ich den Filter in beiden Manifesten dupliziert habe.


2

Meine Erfahrung: Stellen Sie sicher, dass alle Ihre Java-Dateien identifiziert wurden, wenn IDEA Ihre Java-Datei nicht identifiziert, damit er nicht verstehen kann, was "Aktivität" bedeutet

Viel Glück :)

Geben Sie hier die Bildbeschreibung ein


2

Nun, ich habe diesen Fehler auch bekommen,

Fehler: Standardaktivität nicht gefunden

Nun, in meinem Fall war es für das Verschleißmodul. Ich brauche dort keine Aktivität, also mache ich einfach

  1. Gehen Sie zu Konfiguration bearbeiten -> Verschleiß-> Startoptionen-> Start-> Nichts.
  2. Änderungen übernehmen. Klicken Sie auf OK.
  3. Entfernen Sie den vorhandenen Code für die Standardaktivität aus Ihrer Manifestdatei.

Hinweis: Vergessen Sie nicht, Projektdateien zu bereinigen und Gradle-Dateien zu synchronisieren.


2

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

Könnten Sie diese Antwort erweitern? Nur ein Codeblock ist nicht sehr hilfreich
Azsgy

2

Manchmal ist dieser Fehler auf ein Fehlverhalten von Android Studio aufgrund des internen Caches und des Projektaufbaus zurückzuführen. Sogar wir haben alles perfekt für Standardaktivitäten eingestellt. Für ein solches Problem habe ich eine Lösung gefunden und es funktioniert für mich.

Schritt 1. Android Studio ---> Datei -> Ungültiger Cache und geschlossenes Android Studio.

Schritt 2. Gehen Sie zu Pfad C: \ Users \ USER.AndroidStudio3.2 \ system

Schritt 3. Ändern Sie den Namen mit der Erweiterung .back des folgenden Ordners. Beispiel: Der Compiler sollte compiler.back sein

  • Compiler
  • Compiler-Server
  • Umwandlung
  • external-build_system
  • Rahmen
  • gradle
  • resource_folder_cache

Schritt 4: Starten Sie Android Studio und öffnen Sie Ihr Projekt.

Ich hoffe es wird für dich funktionieren.


1
Dies war die einzige Antwort, die für mich funktioniert hat, aber zusätzlich zu dem hier beschriebenen Prozess müssen Sie den Inhalt des Ordners "System / Caches" entfernen, da dies sonst nur beim ersten Mal funktioniert, nachdem Sie den Prozess abgeschlossen und Android Studio neu gestartet haben. dann kehrte es zurück, um dasselbe zu tun: Standardaktivität nicht gefunden.
Gerrard

Die einzige Option, die für mich funktioniert hat. Dies geschah nach einem Hardcomputer-Reset, bei dem wahrscheinlich einige Dateien beschädigt wurden, wie Sie sagten. Die andere Möglichkeit war, Android Studio neu zu installieren, aber zum Glück reicht es aus, die von Ihnen angegebenen Ordner zu löschen.
RJFares

2

Das Synchronisieren von Projekten mit Gradle-Dateien funktioniert manchmal. Um dieses allgemeine Problem zu beheben, sollten Sie dies tun

  1. Beenden Sie Android Studio
  2. Gehen Sie zu USER -> AndroidStudio -> System -> Caches
  3. Löschen Sie diesen Ordner
  4. Starten Sie Android Studio.

Es wird Ihre Dateien neu indizieren und das sollte funktionieren

Danke an kirtan403 von einer ähnlichen Frage.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.