„Nie znaleziono aktywności domyślnej” przy aktualizacji Android Studio

459

Zaktualizowałem IntelliJ Idea z 12.0.4 do 12.10.

Teraz wszystkie moduły w moim projekcie na Androida zawierają błąd:

Błąd: Nie znaleziono domyślnej aktywności

Wróciłem do wersji 12.0.4 i wszystko znów działa.

Jakieś pomysły? Myślę, że może to być problem z brakującą wtyczką. Ponieważ wtyczka nie jest zainstalowana, nie jest w stanie znaleźć domyślnej aktywności. Inną rzeczą mogła być konfiguracja lokalna, ale wątpię w to. Usunąłem folder konfiguracji, aby zweryfikować i to niczego nie zmieniło.

Saad Farooq
źródło
3
czy spojrzałeś na manifest? może zmienione wersje to wyczyściły czy coś? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv
Nie ... ale udało mi się go uruchomić z wersją 12.0.4, ale ponownie importowałem projekt od zera.
Saad Farooq
2
Oczywisty jest klucz, prawdopodobnie błąd nazwa lub zaniechanie, lub problem nazw
slezica
Problem z manifestem we wszystkich siedmiu modułach projektu, który 12.0.4 działa poprawnie, ale 12.10 nie?
Saad Farooq,
Nie, ale na przykład zmiana przestrzeni nazw lub innego projektu może nie być zsynchronizowana z manifestem
Slezica,

Odpowiedzi:

883

Jeśli zauważysz, że ten błąd występuje po uaktualnieniu wersji IntelliJ IDEA lub Android Studio lub po wygenerowaniu nowego pakietu APK, może być konieczne odświeżenie pamięci podręcznej IDE.

File -> Invalidate Caches / Restart...
Sky Kelsey
źródło
2
Możesz także spróbować zgłosić błąd tutaj: youtrack.jetbrains.com/issues/IDEA Uważam, że są bardzo dobrzy w śledzeniu błędów.
Sky Kelsey,
Myślę, że to było to ... będę dalej badać ... Nie miałem czasu, aby ponownie otworzyć katalog jako nowy projekt na każdej z platform.
Saad Farooq
Mam ten sam problem. W moim pliku manifestu pojawia się również błąd „Nie można rozwiązać symbolu„ MainActivity ””. Zaimportowałem projekt z Eclipse.
Roberto
28
Działa to dla mnie w Android Studio, ale po ponownym uruchomieniu musiałem też zrobić Narzędzia -> Android -> Synchronizuj projekt z plikami Gradle.
vaughandroid
304

Nie mogę komentować, dlaczego aktualizacja IntelliJ może powodować ten problem, ponieważ go nie używam.

Jednak ten błąd: „Nie znaleziono domyślnej aktywności” oznacza, że ​​nie masz zadeklarowanej aktywności w AndroidManifest.xml, która jest oznaczona jako główna aktywność, która ma zostać uruchomiona podczas uruchamiania aplikacji.

Powinieneś mieć co najmniej jedno działanie, które wygląda mniej więcej tak:

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

Jeśli nie masz co najmniej jednej aktywności z takim filtrem intencji, najprawdopodobniej zobaczysz komunikat o błędzie, który tutaj umieściłeś.

Należy dodać ten filtr zamiarów do działania, które chcesz otworzyć podczas uruchamiania aplikacji, i to powinno rozwiązać problem.

mattgmg1990
źródło
mrówka robi to dobrze, podobnie IntelliJ 12.0.4
Saad Farooq,
Uruchomiłem aplikację w Eclipse, tak, mam domyślną aktywność. Zaimportowałem moją aplikację do Android Studio, było w porządku, dopóki pewnego dnia nie dodałem menedżera powiadomień i innych rzeczy, to znaczy, że napotkałem ten błąd. Zrobiłem File-> Invalidate cach-> Restart i to naprawiło. Ale błąd nie był spowodowany brakiem domyślnej aktywności, jak powiedziałeś.
The_Martian
Pracowałem też dla mnie! ALE UWAGA: proszę pisać „android.intent.xxx” małymi literami - moja wina polegała na tym, że ukończenie Android Studio sugerowało pisanie wielkimi literami (zajęło mi to godzinę) :-(
Philipp P
22
Dla tych, którzy są stosunkowo nowi na Androida i właśnie spieprzyłeś projekt Android Studio, jest to odpowiedź, której szukasz. Zaakceptowana odpowiedź dotyczy sytuacji, gdy uaktualnienie zepsuło Ci wszystko.
Tom Kidd
3
Ustawiłem to, a mój projekt jest już uruchamiany wiele razy i nagle się psuje. Nie wiem gdzie jest źle. Być może jest to potencjalnie błąd AS.
Licat Julius
81

Twoja aplikacja ma domyślną aktywność uruchamiania?

być może to może być twój błąd

wprowadź opis zdjęcia tutaj

Krok 1 : Wybierz Edytuj konfiguracje

wprowadź opis zdjęcia tutaj

Krok 2 : obejrzyj to ostrzeżenie: Nie znaleziono domyślnej aktywności wprowadź opis zdjęcia tutaj

Krok 3 : wybierz domyślną aktywność wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Krok 3 : Zapisz zmiany i zakończ

wprowadź opis zdjęcia tutaj

Powodzenia

wprowadź opis zdjęcia tutaj

David Hackro
źródło
Dobra odpowiedź! To pomaga, jeśli w aplikacji nie ma żadnej aktywności. (tylko usługa). musisz zmienić „aktywność” na „nie uruchamiaj aktywności”
Udi Reshef
To jedyna odpowiedź, która działała w przypadku aplikacji bez aktywności. Dziękuję Ci.
sefiron
To zadziałało dla mnie! Właściwie miałem domyślną aktywność w Manifeście, ale z jakiegoś powodu Android Studio tego nie znalazł.
ocramot
2
Postępowałem zgodnie z powyższymi krokami, ale teraz jest napisane: „Działanie„ MainActivity ”nie jest zadeklarowane w AndroidManifest.xml”, chociaż MainActivity już tam jest
Far
Odpowiedź była łatwa do naśladowania. Również komentarz @Udi Reshef dziękuje
Bishwas Mishra
66

Prawidłowym sposobem na to jest dodanie następujących plików do pliku manifestu:

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

Należy to wstawić pomiędzy:

<application> </application>

Nie ma potrzeby unieważniania pamięci podręcznej.

Jurij
źródło
Pracowałem też dla mnie! ALE UWAGA: proszę pisać „android.intent.xxx” małymi literami - moja wina polegała na tym, że ukończenie Android Studio zasugerowało wielkie litery (zajęło mi to godzinę) :-(
Philipp P
Dobra uwaga: „Należy wstawić pomiędzy: <application> </application>”. To był mój problem. Wielkie dzięki.
Dennis Mathew
Zachowaj szczególną ostrożność podczas refaktoryzacji kodów. w moim przypadku omyłkowo zreformowałem „kategorię” jako „telefon”, dlatego android.intent.category zmieniono na android.intent.phone.
Kenny Dabiri,
Korzystałem z kreatora tworzenia projektów w Android Studio i nadal musiałem to robić ręcznie. Czy mylę się myśląc, że to błąd?
pdoherty926
44

Spróbuj kliknąć projekt prawym przyciskiem myszy i wybierz Otwórz ustawienia modułu . Następnie przejdź do zakładki Źródła w module, znajdź folder src , kliknij go prawym przyciskiem myszy i oznacz jako Źródła (kolor niebieski).

EDYCJA: W późniejszych wersjach Androida Studio nie ma karty źródeł, ale zamiast tego możesz edytować plik build.gradle : https://stackoverflow.com/a/22028681/1101730

Micer
źródło
Pomogło mi to, zdałem sobie sprawę, że intellij upuścił wiele plików źródłowych z src na karcie Źródła. Wyprowadziłem paczkę z projektu i wróciłem. To rozwiązało mój problem
Jesse Black
2
Zrobiłem to samo, ale kliknąłem prawym przyciskiem myszy folder src i wybrałem „Oznacz katalog jako ...”, a następnie „Katalog źródłowy”. - Android Studio 0.8.6
elliptic1
1
Działa jak urok, usunąłem bieżący katalog główny i ponownie dodałem folder nadrzędny src i gen
Udi Oshi
1
szybkim sposobem na dostęp do ustawień modułu jest kliknięcie nawigatora projektu i naciśnięcie
klawisza
3
jest to przestarzałe, ponieważ nie ma już karty Źródła w Ustawieniach otwartego modułu .
Buddy,
44

Jeśli pracujesz nad aplikacją widgetów, to rozwiązanie powinno działać dla Ciebie:

  1. Iść do Edit Configuration
  2. Ustaw Launch Optionnanothing
Kishan Vasoya
źródło
1
jesteś niesamowity!
Rahul Singh,
1
tylko to działa dla mnie !!
Malith Ileperuma
23

W Android Studio w obszarze Uruchom / debuguj konfigurację -> Aplikacja na Androida -> Ogólne -> Aktywność -> wybierz opcję „Nie uruchamiaj aktywności”.

TouchBoarder
źródło
3
Jest to rozwiązanie, gdy projekt jest usługą lub nie ma domyślnej aktywności z innego powodu.
Aharon Manne
2
W Android Studio 2.2.3; Konfiguracja uruchamiania / debugowania -> Aplikacja na Androida -> moja aplikacja -> Ogólne -> Opcje uruchamiania -> Uruchom: Nic
liteflier
21

Nic powyżej mi nie pomogło. Po pewnym czasie odkryłem, że IDEA zmieniła nazwy akcji na wielkie. Lubić:

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

Po powrocie do normy IDEA rozpoznaje domyślną aktywność:

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Yuliskov
źródło
19

Po pierwsze upewnij się, że w manifeście uwzględniłeś domyślną aktywność.

Przykład:

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

Jeśli próbujesz już wszystkiego i wydaje się, że nic nie działa

  • Usuń pamięć podręczną z pamięci podręcznej% Home% \. Gradle \ cache i ponownie zsynchronizuj projekt.

Lub sprawdź tę odpowiedź

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

Salman
źródło
1
Android Studio 3.2.1: Plik -> Synchronizuj projekt z plikami stopniowymi ::: Musiał to zrobić po unieważnieniu pamięci podręcznej i ponownym uruchomieniu, zanim problem zniknął.
Kreebog
1
To zadziałało dla mnie. Moim zdaniem spowodowało to przeniesienie mojej głównej działalności do innego katalogu, poniżej katalogu głównego.
Shn_Android_Dev
11

Ta metoda działa dla mnie Kliknij ikonę aplikacji, a następnie wybierz edycję konfiguracji. W konfiguracji edycji wybierz określone działanie zamiast działania domyślnego. Następnie podaj ścieżkę działania poniżej.

Kliknij aplikację i edytuj konfigurację

Wybierz określoną aktywność i katalog

Na koniec zsynchronizuj z plikami stopni.

Durgaprasad Nagarkatte
źródło
11

W moim przypadku File -> Invalidate Caches / Restart...nie pomogło

Wszystko było w porządku z moim projektem i oczywiście miałem następny filtr intencyjny dla mojej działalności

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

Naprawdę pomogło mi usunięcie folderów pamięci podręcznej Android / Gradle (mogą one wzrosnąć do 10-30 GB)

Przejdź do C:\Users\YOUR_USER_WINDOWS_NAMEi usuń kolejne foldery

  • .android
  • .AndroidStudio3.2
  • .gradle

(możesz zapisać niektóre konfiguracje Androida .AndroidStudio3.2przed usunięciem, jeśli chcesz)

Możesz utworzyć CLEAR_CACHE.cmdtaki plik nietoperza, aby usunąć foldery bez Kosza

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

działałoby to znacznie szybciej i nie trzeba go usuwać również z Kosza

ps wprowadzone CLEAR_CACHE.cmdwC:\Users\YOUR_USER_WINDOWS_NAME

dobrym pomysłem jest również usunięcie folderu Android Studio i pobranie go ponownie

użytkownik924
źródło
7

Mam ten błąd.

I znalazłem, że w pliku manifestu w działaniu programu uruchamiającego nie wstawiłem actioni nie categoryzamierzałem filtrować.

Zły:

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

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

</activity>

Prawy:

<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
źródło
7

Wyjdź z Android Studio.

Idź do ścieżki C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Usuń folder / caches i folder / tmp

Abhishek Garg
źródło
7

Zmieniłem filtr Intent na

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

Po prostu dodaj również opcję DOMYŚLNĄ. Korzystałem z biblioteki Process Phoenix, co skłoniło mnie do zdefiniowania domyślnej intencji. Ten dodatek rozwiązał mój problem.

Rorschach
źródło
6

@TouchBoarder prawie go miał. Mimo że wybranie opcji „Nie uruchamiaj działania” nie powoduje żadnego uruchomienia.

W Android Studio w obszarze Uruchom / debuguj konfigurację -> Aplikacja na Androida -> Ogólne -> Aktywność -> wybierz opcję „Uruchom:”

Wybierz swoją aktywność. Nie naprawia to dokładnie zamierzonego zachowania, ale raczej zastępuje je poprawnie.

Edytuj konfiguracje uruchamiania / debugowania i określ aktywność uruchamiania

Jan
źródło
4

Jeśli aplikacja nie ma działania (na przykład tylko usługa), zmień opcję uruchamiania / debugowania konfiguracji konfiguracji na Nic.

czarny
źródło
4

Znalazłem to w moim kodzie:

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

Jeśli spojrzysz bardzo uważnie, powinno być <activity android:name=".MainActivity">.

Najwyraźniej gdzieś zreorganizowałem „aktywność” i zmieniłem także nazwy w AndroidManifest.

Muz
źródło
w moim przypadku zmiana nazwy FilterClasses doprowadziła do tagów <intent-filterList> :)
Emanuel
2
Zachowaj szczególną ostrożność podczas refaktoryzacji kodów. w moim przypadku omyłkowo zreformowałem „kategorię” jako „telefon”, dlatego android.intent.category zmieniono na android.intent.phone.
Kenny Dabiri,
4

Znalazłem tego bloga, który naprawił ten problem w moim przypadku. Okazuje się, że musisz dodać jakiś zamiar:

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

To było zdecydowanie proste. Odniesienie:

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

Strona internetowa jest fajna
źródło
4

Wszystkie powyższe odpowiedzi mi nie pomogły. Spróbuj to usunąć

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

w swoim AndroidManifest. Następnie:

File > Sync Project with Gradle Files
Vladislaw Vivaldy
źródło
Doszedłem do wniosku, że tak Syncing Project With Gradle Filesdobrze działa jak wino. Nawiasem mówiąc, mój błąd pojawił się znikąd.
homerun
4

W moim przypadku dokonałem refaktoryzacji zmiennej składowej, która została nazwana „działalnością”, przemianowałem ją na „kontekst” ... Dowiedziałem się, że refaktor został utworzony w tagach aktywności w manifeście, a zamiast tego znalazłem tagi kontekstowe ... to jest naprawdę głupie z Android Studio!

Ahmed Adel Ismail
źródło
2
to jest błąd ze studia Android, masz rację @tere bentikh
mayank_droid
3

Mam ten sam problem w systemie Android Studio 3.3 Canary 3. Projekt z wersji stabilnej Android Studio 3.0 działa najpierw poprawnie, niż po niektórych operacjach czyszczenia / przebudowywania zaczyna wyświetlać komunikat Brak błędu domyślnej aktywności. Próbowałem ponownie zainstalować tę wersję alfa Androida Studio: błąd ponownie. Ale potem uruchomiłem go na starym stabilnym Androidzie i przy użyciu apk install, a ten apk działa poprawnie.

Ponadto mój projekt został utworzony za pomocą Instant App (podkatalogi base, feature, instant, app). Myślę, że to Android Studio ma pewne problemy z plikami Manifest.xml podzielonymi na wiele katalogów.

Zmieniłem więc ustawienia w tym: wprowadź opis zdjęcia tutaj

Michał Ziobro
źródło
3

Od Android Studio 3.5 or 3.6zacząłem się Default Activity not foundmęczyć Invalidating Caches & Restart, przebudowywać projekt itp.

Okazało się, że sposób , w jaki obsługuję wielomoduły i manifesty, był błędny. Miałem domyślny manifest działania tylko w module bibliotecznym, ale powinien być w obu modułach aplikacji.

Zarozumiały librarymodule appmodule1 appmodule2

  1. Usuń HomeActivityz librarymodulemanifestu w ogóle.
  2. Dodaj:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. Do appmodule1manifestu w środkuapplication tagu dodałem:
        <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. To samo dotyczy, appmodule2ale zmiana nazwy 2 na 1 w nazwie.
Przemo
źródło
2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

Mi to pasuje. Przebuduj projekt, aby upewnić się, że nie ma błędów w projekcie. Następnie możemy unieważnić pamięć podręczną.

Artem
źródło
2

Błąd: Nie znaleziono domyślnej aktywności

Rozwiązałem w ten sposób
Uruchom >> Edytuj konfigurację >> Aplikacja na Androida >> Wprowadź ścieżkę domyślnej klasy aktywności w polu edycji „Uruchom”.

Lokesh Tiwari
źródło
2

właśnie napotkałem ten błąd w Android Studio 2.1.2. rozwiązane przez dodanie filtru intencji MAIN / LAUNCHER do domyślnej aktywności w manifeście smaku , chociaż filtr był już domyślną aktywnością w manifeście domyślnym. Był nawet w połączonym manifeście, ale studio nie może go znaleźć, dopóki nie zduplikuję filtra w obu manifestach.

mjollneer
źródło
2

moje doświadczenie: upewnij się, że cały plik Java został zidentyfikowany, jeśli IDEA nie zidentyfikuje pliku Java, aby nie był w stanie zrozumieć, co oznacza „Aktywność”

powodzenia :)

wprowadź opis zdjęcia tutaj

jianwei-x
źródło
2

Mam też ten błąd,

Błąd: Nie znaleziono domyślnej aktywności

w moim przypadku chodziło o moduł zużycia .. Nie potrzebuję tam Aktywności, więc to, co robię, jest po prostu

  1. przejdź do edycji konfiguracji -> zużycie-> Uruchom opcje-> Uruchom-> Nic.
  2. Zastosuj zmiany. Kliknij OK.
  3. Usuń istniejący kod domyślnej aktywności z pliku manifestu.

Uwaga: nie zapomnij wyczyścić projektu i zsynchronizować pliki stopniowania.

PN10
źródło
2

Edytuj 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
źródło
czy mógłbyś rozwinąć tę odpowiedź?
Sam
2

Czasami błąd ten wynika z niewłaściwego zachowania studia Android z powodu wewnętrznej pamięci podręcznej i systemu budowania projektu. Nawet my ustawiliśmy wszystko idealne do domyślnej aktywności. W przypadku takiego problemu znalazłem rozwiązanie i działa na mnie.

Krok 1. Android Studio ---> Plik -> Nieprawidłowa pamięć podręczna i zamknięte studio Androida.

Krok 2. Przejdź do ścieżki C: \ Users \ USER.AndroidStudio3.2 \ system

Krok 3. Zmień nazwę z rozszerzeniem .back poniższego folderu Przykład: kompilator powinien być kompilatorem.back

  • kompilator
  • serwer kompilatora
  • konwersja
  • external-build_system
  • struktura
  • stopień
  • cache_folderu zasobów

Krok 4: Uruchom studio Android i otwórz swój projekt.

Mam nadzieję, że ci się uda.

Abhay Bhusari
źródło
1
To była jedyna odpowiedź, która zadziałała dla mnie, ale oprócz opisanego tutaj procesu musisz usunąć zawartość folderu „system / cache”, w przeciwnym razie działa to tylko za pierwszym razem po zakończeniu procesu i ponownym uruchomieniu Android Studio, potem stało się tak samo, Nie znaleziono działania domyślnego.
Gerrard
Jedyna opcja, która zadziałała dla mnie. Stało się to po resecie twardego komputera, który prawdopodobnie uszkodził niektóre pliki, jak powiedziałeś. Inną opcją było ponowne zainstalowanie Androida Studio, ale na szczęście wyczyszczenie określonych folderów wystarczy.
RJFares
2

Synchronizacja projektu z plikami Gradle czasami działa. Aby rozwiązać ten ogólny problem, powinieneś

  1. Wyjdź z Android Studio
  2. Przejdź do USER -> AndroidStudio -> system -> pamięci podręczne
  3. Usuń ten folder
  4. Uruchom Android Studio.

Ponownie zindeksuje twoje pliki i to powinno działać

Dzięki kirtan403 z podobnego pytania.

Homerun
źródło