Ошибка: активность по умолчанию не найдена
Я обновил IntelliJ Idea 12.0.4 до 12.10.
Теперь все модули в моем проекте Android выдают ошибку:
Ошибка: активность по умолчанию не найдена
Я вернулся к 12.0.4, и он работает.
Есть идеи?? Я думаю, что это может быть связано с тем, что некоторые плагины не были установлены, потому что единственной другой вещью могла быть локальная конфигурация, но я удалил папку конфигурации для подтверждения, и это ничего не изменило.
76 ответов
Если вы видите, что ошибка возникает после обновления версий IntelliJ IDEA или Android Studio или после создания нового APK, вам может потребоваться обновить кэш IDE.
File -> Invalidate Caches / Restart...
Я не могу комментировать, почему обновление 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>
Если у вас нет хотя бы одного действия с таким фильтром намерений, скорее всего, вы увидите сообщение об ошибке, которое вы включили здесь.
Вы должны добавить этот фильтр намерений в действие, которое вы хотите открыть при запуске приложения, и это должно решить вашу проблему.
У вашего приложения есть активность по умолчанию при запуске?
возможно, это может быть вашей ошибкой
Шаг 1. Выберите "Редактировать конфигурации".
Шаг 2: посмотрите это предупреждение: активность по умолчанию не найдена
Шаг 3: выберите действие по умолчанию
Шаг 3: Сохраните ваши изменения и завершите
Удачи
Если вы работаете над приложением виджета, это решение должно работать для вас:
- Идти к
Edit Configuration
- Задавать
Launch Option
вnothing
Правильный способ сделать это - добавить в файл 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>
Нет необходимости в аннулировании кэшей.
Попробуйте щелкнуть правой кнопкой мыши по проекту и выбрать " Открыть настройки модуля". Затем перейдите на вкладку Sources в вашем модуле, найдите папку src, щелкните по ней правой кнопкой мыши и отметьте ее как Sources (синий цвет).
РЕДАКТИРОВАТЬ: В более поздних версиях Android Studio нет вкладки источников, но вместо этого вы можете отредактировать файл build.gradle: /questions/37467094/kak-dobavit-svyazannuyu-ishodnuyu-papku-v-android-studio/37467103#37467103
В Android Studio 4.0 измените Launch на Nothing:
Конфигурация запуска / отладки -> Приложение для Android -> приложение -> Общие -> Параметры запуска -> Запуск: ничего
В Android Studio в разделе "Выполнить / Отладка конфигурации" -> "Приложение Android" -> "Основные" -> "Действия" -> выберите параметр "Не запускать действия".
Ничто из вышеперечисленного не помогло мне. Через некоторое время я обнаружил, что 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>
100% рабочий
Вы, должно быть, видите это
Сначала откройте свой манифест и проверьте, присутствует ли он,
<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>
Если нет, добавьте
Если указанное выше присутствует, но вы видите, что действие по умолчанию не найдено.
Следуй этим шагам:
1. Нажмите "Изменить конфигурацию".
2. Щелкнув по кнопке редактирования конфигурации, вы увидите, что опция запуска установлена на DEFAULT ACTIVITY
- Ничего не меняйте.
Задача решена!
Удачного кодирования.
Сначала убедитесь, что вы включили активность по умолчанию в манифест.
Пример:
<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 и снова синхронизируйте проект.
Или проверьте этот ответ
/questions/22835860/android-studio-pokazyivaet-nevernoe-soderzhimoe-fajla/22835864#22835864
В моем случае 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 и загрузить ее снова
Выход из Android Studio.
Идти по пути C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system
Удалить папку /caches и папку /tmp
Поскольку этот вопрос является "целевой страницей" для множества проблем с манифестом, в результате чего действие по умолчанию не обнаружено, вот еще одна вещь, которую нужно проверить, есть ли у вас эта проблема.
Откройте свой манифест и перейдите на вкладку " Объединенный манифест ".
Иногда проблема связана с объединением всех манифестов в проекте в один, что может привести к ошибке и, следовательно, "Действия по умолчанию не найдены". Проблема в том, что эта ошибка нигде не отображается, кроме вкладки " Объединенный манифест", насколько мне известно.
Es: в проекте minSdkVersion 10
, понизьте версию реализации в файле build.gradle: с25.4.0
к 25.3.1
решите эту проблему.
dependencies {
implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support:mediarouter-v7:25.3.1'
Этот метод работает для меня Нажмите на значок приложения и затем выберите изменить конфигурации. В конфигурации редактирования выберите указанное действие вместо действия по умолчанию. Затем укажите путь действия ниже.
В конце синхронизирую с файлами Gradle.
Это произошло со мной после того, как мой компьютер неожиданно перезагрузился.
Ничего из вышеперечисленного мне не помогло. Вот что решило мою проблему.
Шаг 1:
Шаг 2:
Шаг 3:
Если это не решит проблему, попробуйте другие.
Попробуйте 1:
File -> Invalidate Caches / Restart...
Попробуйте 2:
проверьте, соответствуют ли следующие две строки
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
находятся в вашем объявлении активности запуска в manifest.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>
Попробуйте 3:
если это тоже не поможет.
Попробуйте 4:
- Файл-> Экспорт в ZIP.
а также - Импортируйте его как новый проект.
Удачи.
Я изменил свой 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, и она предложила мне определить намерение по умолчанию. Это дополнение решило мою проблему.
Я получил эту ошибку.
И обнаружил, что в файле манифеста в лаунчера активности я не ставил 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>
У @TouchBoarder это почти получилось. Хотя выбор "Не запускать активность" ничего не приводит к запуску.
В Android Studio в разделе "Выполнить / Отладка" -> "Приложение Android" -> "Основные" -> "Активность" -> выберите параметр "Запуск:"
Выберите свою активность. Это не совсем исправляет намеченное поведение, а корректно переопределяет его.
Все ответы выше не помогли мне. Попробуйте удалить это
<?xml version="1.0" encoding="utf-8"?>
в вашем AndroidManifest. Затем:
File > Sync Project with Gradle Files
Я нашел это в своем коде:
<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.
В моем случае я реорганизовал переменную-член, которая называлась "активность", я переименовал ее в "контекст"... я обнаружил, что рефакторинг был сделан для тегов активности в манифесте, и вместо этого я нашел их теги контекста... это действительно глупо из Android Studio!
Я нашел этот блог, который действительно исправил эту проблему в моем случае. Оказывается, вы должны добавить какое-то намерение:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
Это было определенно просто. Ссылка:
Если ваше приложение не имеет Activity (например, только служба), измените параметр запуска / отладки конфигурации "Launch" на Nothing.
Ну, я тоже получил эту ошибку,
Ошибка: активность по умолчанию не найдена
хорошо в моем случае это было для модуля износа.. Мне не нужна активность там, так что я просто делаю
- перейти к редактированию конфигурации -> износ-> параметры запуска-> запуск-> ничего.
- Применить изменения. Нажмите Ok.
- Удалите существующий код для активности по умолчанию из вашего файла манифеста.
Примечание. Не забудьте очистить проект и синхронизировать файлы Gradle.
Начиная с Android Studio 3.5 or 3.6
Я начал получать Default Activity not found
и я устал от Invalidating Caches & Restart
, проект реконструкции и т. д.
Оказалось, что то, как я обрабатываю мультимодули и манифесты, было ошибочным. У меня был манифест активности по умолчанию только в модуле библиотеки, но он должен был быть в обоих модулях приложения.
Предполагая librarymodule
appmodule1
appmodule2
- Удалить
HomeActivity
отlibrarymodule
Проявить что угодно. - Добавлять:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
- Чтобы
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>
- То же самое о
appmodule2
но замените 2 на 1 в названии.
Синхронизация проекта с файлами Gradle иногда работает. Чтобы решить эту общую проблему, вам следует
- Выйти из Android Studio
- Зайдите в ПОЛЬЗОВАТЕЛЬ -> AndroidStudio -> система -> кеши
- Удалить эту папку
- Запустите Android Studio.
Он повторно проиндексирует ваши файлы, и это должно работать
Спасибо kirtan403 из аналогичного вопроса.
Build -> Rebuild Project
File -> Invalidate Caches.. -> Invalidate and restart
Меня устраивает. Перестройте проект, чтобы убедиться, что в проекте нет ошибок. Тогда мы можем аннулировать кеш.
У меня та же проблема в Android Studio 3.3 Canary 3. Проект из стабильной версии Android Studio 3.0 вначале работает правильно, а после некоторых очисток / перекомпоновок начинает отображаться ошибка "Нет активности по умолчанию". Я попытался переустановить эту альфа-версию Android Studio: ошибка снова. Но потом запустил его в старом стабильном Android и с помощью apk install, и этот apk работает правильно.
Кроме того, мой проект был создан с помощью Instant App (базовые, функциональные, мгновенные, подкаталоги приложений). Я думаю, что в этой Android Studio есть некоторые проблемы с файлами Manifest.xml, разделенными на эти несколько каталогов.
Недавно я столкнулся с подобной проблемой. Проблема была в файле Activitymanifest XML. пожалуйста, проверьте, правильно ли закрыты лозунги.