Standardaktivität in Android Studio nicht gefunden


91

Ich habe gerade ein Upgrade auf Android Studio 0.2.8 durchgeführt und erhalte die Fehlermeldung "Standardaktivität nicht gefunden", wenn ich versuche, die Ausführungskonfigurationen zu bearbeiten.

Wenn ich Android Studio starte, wird folgende Fehlermeldung angezeigt: "Der Zugriff ist nur über den Event-Dispatch-Thread zulässig."

Die Aktivität, die ich verwende, ist eine Fragmentaktivität.

Bisher habe ich versucht, Caches neu zu erstellen und ungültig zu machen / neu zu starten. Beide waren nutzlos.

Bitte lassen Sie mich wissen, was ich tun kann, um das Problem zu beheben.


Antworten:


45

Klicken Sie in Android Studio mit der rechten Maustaste auf das Projekt und wählen Sie Moduleinstellungen öffnen . Gehen Sie dann in Ihrem Modul zur Registerkarte Quellen , suchen Sie den Ordner src , 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 (danke für den Kommentar Josh)


27
Wie könnte ich das in 0.6.1 machen ? Ich sehe keine Registerkarte " Quellen" .
lschlessinger

7
ich auch nicht. Es gibt Eigenschaften, Signierung, Aromen, Build-Typen und Abhängigkeiten
Junior Mayhé

4
Ich hatte keine Registerkarte "Quellen", also habe ich stattdessen die Datei build.gradle
Josh

2
Perfekt! Danke, dass du @Micer geholfen hast. Leute, drückt in eurem IntelliJ-Projekt 'F4', dann habt ihr drei Registerkarten (Quellen, Pfade, Abhängigkeiten), geht zur Registerkarte 'Quellen' und prüft, ob der Ordner 'src' (in der Baumstruktur) blau ist. Wenn nicht, drücken Sie 'Alt + S', um den Quellordner in die Projektstruktur aufzunehmen.
Ryan Amaral

1
@IgorGanapolsky Sie haben Recht, anscheinend wurde die Registerkarte "Quellen" in späteren Versionen von Android Studio entfernt. Überprüfen Sie Joshs Antwort.
Micer

49

Haben Sie ACTION_MAINIhrer Hauptaktivität einen Absichtsfilter hinzugefügt ? Wenn Sie dies nicht hinzufügen, weiß Android nicht, welche Aktivität als Hauptaktivität gestartet werden soll.

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>

1
Ja, das ist erledigt. Ich habe das Problem behoben, dass "Zugriff nur über den Ereignisversand-Thread zulässig ist", indem ich Oracle JDK anstelle von openJDK verwendet habe. Die fehlende Standardaktivität bleibt jedoch bestehen
Vipassana Vijayarangan,

5
Der Name "com.package.name.MyActivity"kann auch weggelassen werden, wenn sich das gesamte <intent-filter>Element in einem <activity>Element befindet, das Ihrer MyActivity in Ihrem Namespace entspricht.
Xavi Montero

Hah, ich habe eine Klasse Filtermit allen benannten Variablen umbenannt filterund anscheinend hat Android Studio beschlossen, AndroidManifest.xmlund einzuschließen <intent-*filter*>. Diese Antwort machte meine doppelte Überprüfung meine AndroidManifest.xmlund half mir, den Fehler zu finden =)
Stephan Henningsen

Wo ist das überhaupt dokumentiert? Ich kann es nicht finden ...
mirabilos

31

Ich hatte das gleiche Problem beim Importieren eines Projekts in Android Studio, wahrscheinlich aufgrund der Tatsache, dass das Projekt auf einer früheren Version von Android Studio entwickelt wurde als derzeit auf meinem Computer installiert.

Was es löste, war einfach zu wählen:

File -> Invalidate Caches / Restart...

und dann auswählen Invalidate and Restart.


1
Vielen Dank @syntagma, Ihre Anleitung hat mein Problem nach stundenlanger Anstrengung gelöst.
MMG

16

Wenn Sie die Registerkarte nicht haben und mit einer leeren Aktivität begonnen haben, versuchen Sie dies. Unten finden Sie ein Beispielcodebeispiel:

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

Gehen Sie nun zu Ihrer AndroidManifest.xml-Datei. Kopieren Sie als Nächstes den Absichtsfilter aus diesem Code. Schauen Sie sich Ihre Manifestdatei wirklich gut an und fügen Sie den Absichtsfilter genau an der Stelle ein, an der er sich im obigen Code befindet. (Nach dem Teil .yourActivityName> des Manifests.) Ich hoffe, das hat geholfen.


13

Wenn beim Versuch, die Ausführungskonfigurationen auch nach der Ausführung zu bearbeiten, immer noch die Fehlermeldung "Standardaktivität nicht gefunden" angezeigt wird:

Cache ungültig machen und neu starten .

Versuchen Sie dann, den Ordner "Einstellungen / Einstellungen" zu löschen:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

oder auf dem Mac:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

Wenn Sie Ihre Pakete umbenannt oder Zweige von Ihrer Versionskontrolle gewechselt haben, erkennt Android Studio manchmal nicht alle Dateien und bringt Dinge durcheinander. Die einzige Lösung, die für mich funktioniert hat, besteht darin, AS zu schließen und dann .AndroidStudioXY (wobei XY Ihre Versionsnummer ist) zu löschen, worauf @ Phileo99 hingewiesen hat.
Zbarcea Christian

1
Du hast mein Leben gerettet! Tun Sie dies einfach / <USER_HOME_DIR> /. AndroidStudioPreview3.2
Nadafafif

Gern geschehen @nadafafif! Bitte stimme meiner Antwort zu, wenn sie dir geholfen hat.
Phileo99

@ Phileo99 Hab das schon gemacht. Konnte mich nicht davon abhalten, es zu tun. :) Prost. Helfen Sie weiter so.
Nadafafif

Das hat geholfen, aber sei dir bewusst, dass du eine Menge Sachen herunterladen wirst. Das Herunterladen dauerte ungefähr 15 Minuten
Valgaal

10

Als ich auf "Moduleinstellungen öffnen" geklickt habe, gab es meines Erachtens keine Registerkarte "Quelle" , da diese für neuere Versionen von Android Studio entfernt wurde (ich bin auf 0.8.14). Also musste ich stattdessen Folgendes tun:

Fügen Sie der build.gradleDatei im android { ... }Block folgende Zeilen hinzu :

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

Klicken Sie nach dem Bearbeiten der Datei auf Extras> Android> Projekt mit Gradle-Dateien synchronisieren .

Dank an diese Antwort und diesen Kommentar .


9

Das Folgende hat den Trick für mich getan. Über Ausführen -> Konfiguration bearbeiten .

Geben Sie hier die Bildbeschreibung ein


Ich würde von dieser Lösung abraten, da dadurch die Anwendung nicht mehr in der Liste der verfügbaren Anwendungen auf dem Samsung Galaxy S5 Neo und dem Samsung Galaxy S6 angezeigt wird.
Teun Kooijman

2

Das ist mir passiert, weil ich die Pfade im Manifest groß geschrieben habe. geändert:

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

zu

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

und es wurde behoben


Du hast meinen Tag gerettet! Vielen Dank
Siva Kumar

2

Ich bin heute auf dasselbe Problem gestoßen und habe hier die Antworten durchgearbeitet.

Für mich war der Unterschied, dass es gestern gut funktioniert hat, also dachte ich, dass es nicht wirklich ein Konfigurationsproblem sein könnte, weder die Konfiguration noch die Version von Android Studio haben sich geändert.

Glücklicherweise habe ich versucht, Android Studio neu zu starten, bevor ich eine der anderen Antworten ausprobiert habe, und zum Glück hat dies das Problem gelöst.

Für alle Leute da draußen, die darauf stoßen: Als erstes müssen Sie Android Studio neu starten. Nur wenn dies das Problem nicht löst, versuchen Sie es mit den anderen Antworten hier.


2

Ich habe gerade den gleichen Fehler in Android Studio 1.5.1 festgestellt. und habe gerade die Ursache des Problems gefunden. Ich bin mir nicht sicher, ob die Ursache ein menschlicher Fehler oder ein seltsamer Fehler im Verhalten der IDE war, aber keine der vorhandenen StackOverflow-Fragen zu diesem Thema schien etwas darüber zu zeigen, also dachte ich, ich poste es trotzdem als Antwort.

Für mich hatte entweder eines meiner Teammitglieder oder die IDE selbst den Manifesteintrag für die Startaktivitäten geändert, sodass er folgendermaßen aussah:

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

Während es in der Tat so aussehen sollte:

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

Bitte überprüfen Sie das Format Ihrer Launcher-Aktivität im Manifest doppelt, dreifach oder vierfach, und Sie können sich möglicherweise Zeit sparen.

Hoffe das hilft.

BEARBEITEN: Ich empfehle dringend, nicht die Antworten zu verwenden, die eine manuelle Auswahl einer Startaktivität in den Konfigurationsoptionen Ihres Moduls vorschlagen, da dies dazu führte, dass die Anwendung nicht mehr in der Liste der installierten Apps auf beiden Samsung Galaxy S5 angezeigt wurde Neo und das Samsung Galaxy S6 (zumindest für mich).


2

Mein Problem war auf einen zusätzlichen Fehler zurückzuführen, der manchmal auftauchte

Manifest Merger failed with multiple errors in Android Studio

Was letztendlich mein Problem verursachte, war die Tatsache, dass es mehrere Manifeste gab (ein Debug-Manifest und ein Manifest in dem neuen Modul, das ich gerade importiert hatte), und diese wurden aus diesem Grund nicht korrekt zusammengeführt. Nachdem ich diese Antwort gesehen hatte , konnte ich das zusammengeführte Manifest analysieren, die Ursache des Problems finden und es beheben.


1

Bitte stellen Sie im Manifest sicher, dass der Paketname mit Ihrer Hauptaktivität übereinstimmt


1
  1. Wechseln Sie in Android Studio zur Projektperspektive (nicht zur Android-Perspektive).

  2. Stellen Sie sicher, dass Ihr Projekt der Standardstruktur des Gradle-Plugins folgt (dh project_dir / app / src / main / java ... ).

  3. Löschen Sie alle angezeigten Build- Ordner und Unterordner.

  4. Klicken Sie in der Symbolleiste auf Erstellen -> Projekt bereinigen und dann auf Erstellen -> Projekt neu erstellen .

  5. Versuchen Sie, das Projekt auszuführen.


1

Sie können Android Studio dazu bringen, sich nicht zu beschweren, indem Sie zum Menü "Konfigurationen bearbeiten" gehen (dreimal auf "Umschalttaste" tippen, "Konfigurationen bearbeiten" eingeben) und dann Startoptionen> Starten auf "Nichts" ändern.

Ich werde wahrscheinlich eine allgemeine Aktivität mit Anweisungen hinzufügen, um Verwirrung zu vermeiden.


Dies sparte meine Zeit
Sayali

1

In meinem Fall hat es funktioniert, als ich den Ordner .idea aus dem Projekt (Project / .ida) entfernt und Android Studio erneut geöffnet habe.


Das Entfernen des .idea-Ordners hat in meinem Fall geholfen. Danke! Zur Verdeutlichung befanden sich alle Dateien mit der Erweiterung ".iml" im Ordner .idea. Bitte entfernen Sie NICHT nur IML-Dateien, da dies zu anderen Fehlern führen kann!
Cordis Audax Agrinova

0
  1. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Moduleinstellungen öffnen.
  2. Wechseln Sie in Ihrem Modul zur Registerkarte Quellen.
  3. Finden Sie Ihren src-Ordner.
  4. Klicken Sie mit der rechten Maustaste darauf und markieren Sie es als Quellen.

Dies löste den Fehler in meinem Fall.


0

Wenn Sie den Namen der Verzeichnisse (Klassenstruktur) geändert haben, z. B. com.dir.sample in com.dir.sample1, vergessen Sie danach nicht, das Paket com.dir.sample in com.dir.sample1 zu ändern.


0

Ändern Sie "Workspace.xml" (drücken Sie Strg + Umschalt + R, um danach zu suchen).

  1. Ändern Sie den Aktivitätsnamen mit dem Paketnamen

  2. Stellen Sie sicher, dass "name =" USE_COMMAND_LINE "in value =" false "geändert wird.

  3. Laden Sie das Projekt neu

Getan!


Ich würde mit Strg + Umschalt + F suchen, + R = ersetzen, wo F = finden.
Shishdem

0

Für diejenigen wie mich, die Schwierigkeiten hatten, die Registerkarte "Quellen" zu finden:

Geben Sie hier die Bildbeschreibung ein

Hier müssen Sie Ihren "src" -Ordner blau markieren (zuerst in Markieren als: Quelle , dann in Ihrem src- Ordner klicken ) und los geht's.


0

Sie können zwei Schritte ausführen:

  1. Gehen Sie zu Konfigurationen und geben Sie den Namen der zu startenden Aktivität ein
  2. Wenn es immer noch nicht funktioniert, deaktivieren Sie Instant Run

0

Ich habe alle Lösungen ausprobiert, aber überhaupt nicht funktioniert. als ich versucht habe, Instant Run in meinem Android Studio zu deaktivieren.

Gehen Sie zu Android Studio- Einstellungen oder -Einstellungen (für MAC) -> Erstellen, Ausführen, Bereitstellen -> Sofortige Ausführung .

Deaktivieren Sie die Funktion "Sofortige Ausführung" und klicken Sie anschließend im Menü "Datei" auf " Projekt mit Gradle-Dateien synchronisieren"

Führen Sie jetzt Ihren Build aus ...


Dies gilt nicht mehr für Android Studio 4.0+
Jorge E. Hernández

0

In einigen Fällen können Sie ein Modell mit einem bestimmten categoryFeld haben. Wenn Sie es an allen Stellen umgestalten, wird es möglicherweise in der Manifestdatei umgestaltet, und dann wird das Tag xml ungültig.


0

Für diese Art von Fall können viele Möglichkeiten bestehen (Standardaktivität nicht gefunden). Wenn der gesamte Code in Ordnung ist, insbesondere in Manifest, müssen Sie nur den Cache ungültig machen und das Studio neu starten.

Aber manchmal passiert es, wenn Sie eine doppelte Aktivitätsdeklaration im Manifest haben, nicht nur für die Hauptaktivität, sondern auch durch untergeordnete Aktivitäten.

Das ist bei mir passiert, Standardaktivität nicht gefunden, weil ich doppelte untergeordnete Aktivitäten im Manifest habe, nachdem das gelöscht wurde, ist alles in Ordnung



0

Ich habe es herausgefunden. Ich habe fälschlicherweise das letzte Schlüsselwort in die Aktivitätsdeklaration eingefügt. Sobald ich es entfernt habe, funktioniert alles!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. In Android Studio

  2. Gehen Sie zur Bearbeitung der Konfiguration.

  3. Wählen Sie die App aus.

  4. Wählen Sie den Aktivitätspfad für das Mittagessen.

  5. bewerben, OK.

    Vielen Dank!!


-1

Der Name der Standardaktivität wurde geändert (wie SplashActivity -> SplashActivity1) und funktioniert für mich

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.