"Активність за замовчуванням не знайдена" у версії оновлення Android Studio


460

Я модернізував IntelliJ Idea з 12.0.4 до 12.10.

Тепер усі модулі в моєму проекті Android видають помилку:

Помилка: активність за замовчуванням не знайдена

Я повернувся до 12.0.4, і все знову працює.

Будь-які ідеї? Я думаю, це може бути проблема з відсутнім плагіном. Оскільки плагін не встановлений, він не в змозі знайти активність за замовчуванням. Інша річ могла бути локальним конфігурацією, але я сумніваюся в цьому. Я видалив папку конфігурації, щоб перевірити, і це нічого не змінило.


3
ви подивилися на маніфест? можливо перемикання версій очистило це чи щось? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv

Ні ... але я змусив його працювати з 12.0.4, але повторно імпортував проект з нуля.
Саад Фарук

2
Ключ "Маніфесту", ймовірно, помилка чи упущення імені, або проблема простору імен
slezica

Проблема Manifest у всіх семи модулях проекту, що 12.0.4 працює правильно, але 12.10 не відповідає ??
Саад Фарук

Ні, але зміна простору імен чи щось, наприклад, макет проекту, можуть вийти з синхронізації з маніфестом
slezica

Відповіді:


884

Якщо ви бачите, що помилка виникає після оновлення версій IntelliJ IDEA або Android Studio або після створення нового APK, можливо, вам доведеться оновити кеш IDE.

File -> Invalidate Caches / Restart...

2
Ви також можете спробувати подати помилку тут: youtrack.jetbrains.com/isissue/IDEA Я вважаю, що вони дуже добре підходять до пошуку помилок, які я завантажую.
Sky Kelsey

Я думаю, це було все ... Я буду продовжувати розслідування ... Я не встиг знову відкрити каталог як новий проект на кожній з платформ.
Саад Фарук

У мене така ж проблема. У своєму файлі маніфесту я також отримую помилку "Неможливо вирішити символ" MainActivity "". Я імпортував проект із Eclipse.
Роберто

28
Це працювало для мене в Android Studio, але після перезавантаження мені також довелося зробити інструменти -> Android -> синхронізувати проект з файлами Gradle.
vaughandroid


304

Я не можу коментувати, чому оновлення IntelliJ може спричинити цю проблему, оскільки я не використовую її.

Однак ця помилка: "Діяльність за замовчуванням не знайдена", схоже, говорить про те, що у вас немає активності, оголошеної в AndroidManifest.xml, яка позначена як основна діяльність, яку слід запустити при запуску програми.

Ви повинні мати хоча б одну діяльність, яка виглядає приблизно так:

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

Якщо у вас немає хоча б однієї діяльності з таким фільтром намірів, ви, швидше за все, побачите повідомлення про помилку, яке ви включили сюди.

Ви повинні додати цей фільтр намірів до діяльності, яку ви хочете відкрити під час запуску програми, і це має вирішити вашу проблему.


мураха це добре працює, і IntelliJ 12.0.4
Саад Фарук

Я запустив свою програму в Eclipse, так, я маю активність за замовчуванням. Я імпортував свою програму в студію Android, це було добре, поки одного дня я не додав диспетчера повідомлень та інших матеріалів, тобто коли я зіткнувся з цією помилкою. Я зробив File-> Invalidate cach-> Restart і це виправив. Але помилка не була викликана відсутністю активності за замовчуванням, як ви заявили.
The_Martian

Працював і для мене! АЛЕ ПРИМІТКА: будь ласка, напишіть "android.intent.xxx" малими літерами - я винен, що для завершення Android Studio запропоновано великі літери (на це пішло одна година) :-(
Philipp P

22
Для тих, хто є відносно новим в Android, і ви щойно накрутили проект Android Studio, це відповідь, яку ви шукаєте. Прийнята відповідь стосується того, коли оновлення накрутило вам речі.
Том Кідд

3
Я поставив це, і мій проект вже запускається багато разів, і він раптово стає неправильним. Я не знаю, де не так. Можливо, це потенційно помилка AS.
Лікат Юлій

81

У вашої програми за замовчуванням активність запуску?

можливо, це може бути вашою помилкою

введіть тут опис зображення

Крок 1 : Виберіть Редагувати конфігурації

введіть тут опис зображення

Крок 2 : перегляньте це попередження: активність за замовчуванням не знайдена введіть тут опис зображення

Крок 3 : виберіть дію за замовчуванням введіть тут опис зображення

введіть тут опис зображення

Крок 3. Збережіть зміни та закінчіть

введіть тут опис зображення

Щасти

введіть тут опис зображення


Хороша відповідь! Це допомагає, якщо в додатку немає активності. (лише послуга). вам потрібно змінити "активність" на "не запускати діяльність"
Udi Reshef

Це єдина відповідь, яка працювала для додатків без активності. Дякую.
sephiron

Це працювало для мене! Я фактично мав активність за замовчуванням у Manifest, але чомусь Android Studio не знайшов цього.
окламот

2
Я пішов за вищезгадані кроки , але тепер він говорить , що «діяльність" MainActivity "не оголошений в AndroidManifest.xml» , хоча MainActivity є
Далекий

Цю відповідь було легко прослідкувати. Також коментар від @Udi Reshef дякує
Bishwas Mishra

66

Правильний спосіб зробити це - додати в файл 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>

Це слід вставити між:

<application> </application>

Немає потреби в недійсних кешах.


Працював і для мене! АЛЕ ПРИМІТКА: будь ласка, напишіть "android.intent.xxx" малими літерами - я винен, що для завершення Android Studio запропоновано великі літери (на це пішло одна година) :-(
Philipp P

Хороший момент: "Це потрібно вставити між: <застосування> </application>". Це було моє питання. Дуже дякую.
Денніс Метью

Будьте дуже обережні, коли рефакторинг своїх кодів. в моєму випадку я помилково відновив "категорію" як "телефон", таким чином, android.intent.category було змінено на android.intent.phone.
Кенні Дабірі

Я скористався майстром створення проектів Android Studio і все-таки повинен був це зробити вручну. Я помиляюсь, думаючи, що це помилка?
pdoherty926

44

Спробуйте клацнути правою кнопкою миші проект і виберіть Відкрити налаштування модуля . Потім перейдіть на вкладку " Джерела" у своєму модулі, знайдіть папку src , клацніть правою кнопкою миші та позначте її як " Джерела" (синій колір).

РЕДАКТУВАННЯ: В останніх версіях Android Studio немає вкладки джерел, але ви можете змінити файл build.gradle : https://stackoverflow.com/a/22028681/1101730


Це мені допомогло, я зрозумів, що Intellij видалив багато вихідних файлів з src на вкладці Sources. Я перемістив пакет із проекту та повернувся. Це вирішило мою проблему
Джессі Блек

2
Я робив таке саме, але я клацнув правою кнопкою миші папку src і перейшов до "Позначити каталог як ...", а потім "Корінь джерел". - Android Studio 0.8.6
elliptic1

1
Працює як шарм, видалив поточний корінь і знову додав батьківську папку src та gen
Udi Oshi

1
швидкий спосіб отримати доступ до налаштувань модуля - це натиснути на навігатор проекту та натиснути F4
whyoz

3
це застаріло, оскільки в розділі " Відкрити налаштування модуля" вже немає вкладки " Джерела" .
Бадді


23

У Android Studio в розділі Запуск / налагодження налаштування -> Додаток Android -> Загальне -> Діяльність -> виберіть опцію "Не запускати діяльність".


3
Це рішення, коли проект є послугою або не має активності за замовчуванням з якоїсь іншої причини.
Ахарон Манне

2
В Android Studio 2.2.3; Конфігурація запуску / налагодження -> Додаток для Android -> myApp -> Загальне -> Опції запуску -> Запуск: Нічого
liteflier

21

Ніщо вище мені не допомогло. Через деякий час я виявив, що IDEA змінила назви дій на великі регістри. Подібно до:

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

Після повернення до нормального значення IDEA розпізнає активність за замовчуванням:

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

19

По-перше, переконайтеся, що ви включили активність за замовчуванням у маніфест.

Приклад:

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

Якщо ви спробували все, і, здається, нічого не працює

  • Видаліть кеш із% Home Home \ \ gradle \ кеш і знову синхронізуйте проект.

Або перевірте цю відповідь

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


1
Android Studio 3.2.1: Файл -> Синхронізувати проект з файлами Gradle ::: Доводилося робити це після вимкнення кешу та перезавантаження до усунення проблеми.
Крібог

1
Це працювало для мене. Я вважаю, що це спричинило переміщення моєї основної діяльності в інший каталог, нижче від кореня.
Shn_Android_Dev

11

Цей метод працює для мене Клацніть піктограму програми та виберіть редагування конфігурацій. У конфігурації редагування виберіть задану діяльність замість активності за замовчуванням. Потім дайте шлях діяльності нижче.

Клацніть на додаток і відредагуйте конфігурацію

Виберіть вказану діяльність та каталог

Зрештою синхронізуйте з файлами gradle.


11

У моєму випадку File -> Invalidate Caches / Restart... не допомогло

З моїм проектом все було нормально, і, звичайно, у мене був наступний фільтр намірів для моєї діяльності

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

Мені справді допомогло видалення папок кешу Android / Gradle (вони можуть вирости до 10-30 ГБ)

Перейдіть до C:\Users\YOUR_USER_WINDOWS_NAMEта видаліть наступні папки

  • .android
  • .AndroidStudio3.2
  • .gradle

(ви можете зберегти деякі конфігурації Android від .AndroidStudio3.2 перш ніж видаляти їх, якщо хочете)

Ви можете створити такий файл bat, CLEAR_CACHE.cmdщоб видалити папки без кошика

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

він буде працювати набагато швидше, і вам не доведеться видаляти його також з кошика

ps поставити CLEAR_CACHE.cmd вC:\Users\YOUR_USER_WINDOWS_NAME

також непогано видалити папку Android Studio і завантажити її знову


8

Я змінив свій фільтр намірів на

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

Просто додайте варіант DEFAULT також. Я використовував бібліотеку Process Phoenix, і це запропонувало мені визначити наміри за замовчуванням. Це доповнення вирішило мою проблему.


7

Я отримав цю помилку.

І виявив, що в файл маніфесту в пусковій діяльності я не ставив actionі не categoryфільтрував наміри.

Неправильний:

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

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

</activity>

Правий:

<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

Вийдіть з Android Studio.

Ідіть до стежки C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Видалення / кешування папки та / tmp папки


6

@TouchBoarder майже не було. Хоча вибір "Не запускати діяльність" не призводить до запуску.

У Android Studio у розділі Конфігурація запуску / налагодження -> Додаток Android -> Загальне -> Діяльність -> виберіть опцію "Запуск:"

Виберіть свою активність. Це не точно фіксує передбачувану поведінку, а скоріше її перекреслює.

Відредагуйте конфігурації запуску / налагодження та вкажіть активність запуску


4

Якщо у вашій програмі немає активності (наприклад, лише сервіс), змініть параметр "Запустити" налаштування запуску / налагодження на Ніщо.


4

Я знайшов це у своєму коді:

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

Якщо ви дивитесь дуже уважно, так і має бути <activity android:name=".MainActivity"> замість цього.

Мабуть, я десь відновив "діяльність", і це також змінило назви в AndroidManifest.


у моєму випадку перейменування FilterClasses призвело до тегів <intent-filterList> :)
Емануель

2
Будьте дуже обережні, коли рефакторинг своїх кодів. в моєму випадку я помилково відновив "категорію" як "телефон", таким чином, android.intent.category було змінено на android.intent.phone.
Кенні Дабірі

4

Я знайшов цей блог, який справді вирішив цю проблему в моєму випадку. Виявляється, вам потрібно додати якийсь намір:

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

Це було напевно прямо. Довідка:

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


4

Усі відповіді вище мені не допомогли. Спробуйте видалити це

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

у вашому AndroidManifest. Тоді:

File > Sync Project with Gradle Files

Я зрозумів, що просто Syncing Project With Gradle Filesдобре працює як вино. До речі моя помилка сталася нізвідки.
homerun

4

У моєму випадку я відновив змінну члена, яку назвали "активність", я перейменував її на "контекст" ... Я дізнався, що рефактор був зроблений до тегів активності в маніфесті, і замість цього я знайшов їх теги контексту ... це справді дурно від Android Studio!


2
це помилка від студії Android, ви праві @tere bentikh
mayank_droid

3

У мене така ж проблема в Android Studio 3.3 Canary 3. Проект від Android Studio 3.0 стабільна версія працює по-перше правильно, ніж після деяких очищень / відновлень, він починає показувати відсутність помилок активності за замовчуванням. Я спробував перевстановити цю альфа-версію Android Studio: знову помилка. Але потім запустили його у старому стабільному Android та за допомогою програми apk, і ця apk працює коректно.

Більше того, мій проект був створений за допомогою програми Instant App (база, підручник, функція миттєвого доступу, підкаталоги додатків). Я думаю, що у цієї Android Studio є деякі проблеми з файлами Manifest.xml, розділеними на ці декілька каталогів.

Тому я змінив налаштування на це: введіть тут опис зображення


3

З Android Studio 3.5 or 3.6я почав отримувати, Default Activity not foundі я втомився Invalidating Caches & Restart, відновлюючи проект тощо.

Виявилося, спосіб я обробляю багатомодульні модулі та маніфести був помилковим. У мене був маніфест діяльності за замовчуванням лише в модулі бібліотеки, але він повинен бути в обох модулях додатків.

Припускаючи librarymodule appmodule1 appmodule2

  1. Видаліть HomeActivityіз librarymoduleманіфесту що б то не було.
  2. Додати:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. До appmodule1Manifest всередині applicationтегу я додав:
        <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. Те саме про, appmodule2але змінити 2 на 1 у назві.

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

Це працює для мене. Перебудуйте проект, щоб переконатися у відсутності помилок у проекті. Тоді ми можемо визнати недійсним кеш.


2

Помилка: активність за замовчуванням не знайдена

Я вирішив таким чином
Запуск >> Редагування конфігурації >> Додаток для Android >> Введіть шлях вашого класу активності за замовчуванням у поле редагування "Запуск".


2

щойно зіткнувся з цією помилкою на андроїд-студії 2.1.2. вирішено, додавши MAIN / LAUNCHER-фільтр намірів до активності за замовчуванням у маніфесті смаку , хоча фільтр вже був у маніфесті за замовчуванням активністю за замовчуванням. Він навіть був у об'єднаному маніфесті, але студія не могла його знайти, поки я не скопіював фільтр в обох маніфестах.


2

мій досвід: переконайтеся, що всі ваші файли java були ідентифіковані, якщо IDEA не ідентифікує ваш файл java, щоб він не зміг зрозуміти, що означає "активність"

Щасти :)

введіть тут опис зображення


2

Ну, і я отримав цю помилку,

Помилка: активність за замовчуванням не знайдена

ну в моєму випадку це був модуль зносу. Мені там не потрібна діяльність, тому що я просто роблю

  1. перейдіть до редагування конфігурації -> знос-> Опції запуску-> Запуск-> Нічого.
  2. Застосувати зміни. Натисніть кнопку Ок.
  3. Видаліть існуючий код для активності за замовчуванням із файлу маніфесту.

Примітка. Не забудьте очистити файли проекту та синхронізувати Gradle.


2

Редагуйте 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>

Ви могли б розширити цю відповідь? Просто блок коду не дуже корисний
Azsgy

2

Іноді ця помилка через неправильну поведінку андроїд-студії через внутрішню кеш-систему та систему побудови проектів. Навіть ми встановили все, що ідеально підходить для активності за замовчуванням. Для такого питання я знайшов рішення, і це працює на мене.

Крок 1. Android Studio ---> Файл -> Недійсний кеш і закрита студія Android.

Крок2.Перейдіть до системи C: \ Users \ USER.AndroidStudio3.2 \ system

Крок 3. Змініть ім'я з розширенням .back нижче папки Приклад: компілятор повинен бути compiler.back

  • компілятор
  • компілятор-сервер
  • конверсія
  • external-build_system
  • рамки
  • градле
  • resource_folder_cache

Крок 4: Запустіть студію Android та відкрийте проект.

Сподіваюся, це спрацює для вас.


1
Це була єдина відповідь, яка працювала для мене, але крім описаного тут процесу, ви повинні видалити вміст папки "system / caches", інакше вона працює лише перший раз після того, як ви виконали процес і перезапустите Android Studio, тоді це сталося так само, Активність за замовчуванням не знайдена.
Джеррард

Єдиний варіант, який працював на мене. Це сталося після жорсткого скидання комп'ютера, який, ймовірно, пошкодив деякі файли, як ви вже говорили. Іншим варіантом було перевстановити Android Studio, але, на щастя, достатньо очистити вказані вами папки.
RJFares

2

Синхронізувати проект з файлами Gradle іноді працює, щоб вирішити цю загальну проблему

  1. Вийдіть з Android Studio
  2. Перейдіть до USER -> AndroidStudio -> system -> caches
  3. Видаліть папку
  4. Запустіть Android Studio.

Він переіндексує ваші файли, і це має працювати

Завдяки kirtan403 з подібного питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.