«Активность по умолчанию не найдена» при обновлении Android Studio


465

Я обновил 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

Проблема с манифестом во всех семи модулях проекта: 12.0.4 работает правильно, а 12.10 - нет ??
— Саад Фарук

Нет, но, например, изменение в пространстве имен или в компоновке проекта могло бы быть не синхронизировано с манифестом
— slezica

Ответы:


889

Если вы видите, что ошибка возникает после обновления версий IntelliJ IDEA или Android Studio или после создания нового APK, вам может потребоваться обновить кэш IDE.

File -> Invalidate Caches / Restart...

2
Вы также можете попытаться сообщить об ошибке здесь: youtrack.jetbrains.com/issues/IDEA Я считаю, что они очень хорошо справляются с обнаруженными мной ошибками.
— Скай Келси

Я думаю, что это было ... Я буду продолжать расследование ... У меня не было времени, чтобы снова открыть каталог как новый проект на каждой из платформ.
— Саад Фарук

У меня та же проблема. В моем файле манифеста также появляется ошибка «Не удается разрешить символ« 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
— Saad

Я запустил свое приложение в 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

Это единственный ответ, который работал для приложений без активности. Спасибо.
— сфирон

Это сработало для меня! У меня на самом деле была активность по умолчанию в манифесте, но по какой-то причине Android Studio этого не нашла.
— ocramot

2
Я последовал за вышеупомянутые шаги , но теперь он говорит , что «деятельность„MainActivity“не объявлен в AndroidManifest.xml» , хотя MainActivity есть
— Дальний

Этот ответ был легко следовать. Также комментарий от @Udi Reshef благодарит
— Bishwas Mishra

66

Правильный способ сделать это - добавить следующее в файл манифеста:

<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> </ application>». Это была моя проблема. Большое спасибо.
— Деннис Мэтью

Будьте очень осторожны при рефакторинге ваших кодов. в моем собственном случае я ошибочно рефакторировал «категорию» как «телефон», таким образом, android.intent.category был изменен на android.intent.phone.
— Кенни

Я использовал мастер создания проектов Android Studio и все еще должен был сделать это вручную. Я ошибаюсь, считая, что это ошибка?
— pdoherty926


44

Попробуйте щелкнуть правой кнопкой мыши по проекту и выбрать « Открыть настройки модуля» . Затем перейдите на вкладку Sources в вашем модуле, найдите папку src , щелкните по ней правой кнопкой мыши и отметьте ее как Sources (синий цвет).

РЕДАКТИРОВАТЬ: В более поздних версиях Android Studio нет вкладки источников, но вместо этого вы можете отредактировать файл build.gradle : https://stackoverflow.com/a/22028681/1101730


Это помогло мне, я понял, что intellij сбросил много исходных файлов из src на вкладке Sources. Я переместил свою посылку из проекта и вернулся обратно. Это решило мою проблему
— Джесси Блэк

2
Я сделал то же самое, но щелкнул правой кнопкой мыши по папке src и выбрал «Пометить каталог как ...», а затем «Источники Root». - Android Studio 0.8.6
— elliptic1

1
Работает как шарм, удалил текущий корень и снова добавил родительскую папку src и gen
— Udi Oshi

1
быстрый способ получить доступ к настройкам модуля - щелкнуть в навигаторе проекта и нажать F4
— Whyoz

3
это устарело, так как в настройках Open Module больше нет вкладки Sources .
— Бадди

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% \. Gradle \ caches и снова синхронизируйте проект.

Или проверьте этот ответ

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


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

1
Это сработало для меня. То, что я считаю причиной этого, было перемещением моей основной деятельности в другой каталог, ниже по потоку от корня.
— Shn_Android_Dev

12

В моем случае 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 и загрузить ее снова


11

Этот метод работает для меня Нажмите на значок приложения и затем выберите изменить конфигурации. В конфигурации редактирования выберите указанное действие вместо действия по умолчанию. Затем укажите путь действия ниже.

Нажмите на приложение и измените конфигурацию

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

В конце синхронизируйте с файлами Gradle.


8

Я изменил свой Intent-фильтр на

<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

Удалить папку / caches и папку / tmp


6

У @TouchBoarder это почти получилось. Хотя выбор «Не запускать активность» ничего не приводит к запуску.

В Android Studio в разделе «Выполнить / Отладка» -> «Приложение Android» -> «Основные» -> «Активность» -> выберите параметр «Запуск:»

Выберите свою активность. Это не совсем исправляет намеченное поведение, а корректно переопределяет его.

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


4

Если ваше приложение не имеет Activity (например, только служба), измените параметр запуска / отладки конфигурации «Launch» на Nothing.


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> :)
— Emanuel

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 install, и этот 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. К appmodule1манифесту внутри 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. Применить изменения. Нажмите Ok.
  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 ---> Файл -> Недействительный кэш и закрытая андроид студия.

Шаг 2. Перейти к пути C: \ Users \ USER.AndroidStudio3.2 \ system

Шаг 3. Измените имя с расширением .back нижеуказанной папки Пример: компилятор должен быть compiler.back

  • компилятор
  • компилятор-сервер
  • преобразование
  • внешний build_system
  • фреймворк
  • Gradle
  • resource_folder_cache

Шаг 4: Запустите Android studio и откройте свой проект.

Я надеюсь, что это будет работать для вас.


1
Это был единственный ответ, который сработал для меня, но в дополнение к процессу, описанному здесь, вы должны удалить содержимое папки «system / caches», иначе она будет работать только в первый раз после того, как вы выполнили процесс и перезапустили Android Studio, затем оно вернулось к тому же самому, активность по умолчанию не найдена.
— Джеррард

Единственный вариант, который работал для меня. Это произошло после жесткого сброса компьютера, который, возможно, повредил некоторые файлы, как вы сказали. Другим вариантом было переустановить Android Studio, но, к счастью, очистки указанных вами папок достаточно.
— RJFares

2

Синхронизация проекта с файлами Gradle иногда работает, чтобы исправить эту общую проблему, вы должны

  1. Выход из Android Studio
  2. Зайдите в ПОЛЬЗОВАТЕЛЬ -> AndroidStudio -> Система -> Кэши
  3. Удалить эту папку
  4. Запустите Android Studio.

Это будет переиндексировать ваши файлы, и это должно работать

Спасибо kirtan403 от аналогичного вопроса.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.