it-swarm.com.ru

Ошибка: активность по умолчанию не найдена

Я обновил IntelliJ Idea 12.0.4 до 12.10. 

Теперь все модули в моем проекте Android выдают ошибку: 

Ошибка: Активность по умолчанию не найдена

Я вернулся к 12.0.4, и он работает.

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

302
Saad Farooq

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

File -> Invalidate Caches / Restart...
622
Sky Kelsey

Я не могу комментировать, почему обновление 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>

Если у вас нет хотя бы одного действия с таким фильтром намерений, вы, скорее всего, увидите сообщение об ошибке, которое вы включили здесь.

Вы должны добавить этот фильтр намерений в действие, которое вы хотите открыть при запуске приложения, и это должно решить вашу проблему.

234
mattgmg1990

У вашего приложения есть активность по умолчанию при запуске?

возможно, это может быть вашей ошибкой

 enter image description here

Шаг 1: выберите «Редактировать конфигурации»

 enter image description here

Шаг 2: посмотрите это предупреждение: активность по умолчанию не найдена  enter image description here

Шаг 3: выберите действие по умолчанию  enter image description here

 enter image description here

Шаг 3: сохраните изменения и завершите

 enter image description here

Удачи

 enter image description here

61
David Hackro

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

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

Нет необходимости в аннулировании кэшей.

48
Iurii

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

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

43
Micer

Если вы работаете над приложением виджетов, это решение должно работать для вас:

  1. Перейти к Edit Configuration
  2. Установите Launch Option в nothing
23
Kishan Vasoya

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

19
TouchBoarder

Ничто из вышеперечисленного не помогло мне. Через некоторое время я обнаружил, что 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>
16
yuliskov

Я получил эту ошибку.

И обнаружил, что в файле манифеста при запуске я не помещал 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
mehmoodnisar125

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

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

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

 Edit run/debug configurations and specify launch activity

6
John

В моем случае 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

это будет работать намного быстрее, и вам не нужно удалять его также из корзины

постскриптум положить CLEAR_CACHE.cmd в C:\Users\YOUR_USER_WINDOWS_NAME

это также хорошая идея, чтобы удалить папку Android Studio и загрузить ее снова

5
user924

Я нашел этот блог, который действительно исправил эту проблему в моем случае. Оказывается, вы должны добавить какое-то намерение:

<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
Website Is Fun

Я изменил свой 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, и она предложила мне определить намерение по умолчанию. Это дополнение решило мою проблему.

4
Rorschach

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

4
black

Сначала убедитесь, что вы включили активность по умолчанию в манифест.

Пример:

<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

4
Salman

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

 Click on app and edit configuration

 Choose the specified activity and the directory

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

4
Durgaprasad Nagarkatte

Я нашел это в своем коде:

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

4
Muz

в моем случае я рефакторил переменную-член, которая называлась «активность», я переименовал ее в «контекст» ... я обнаружил, что рефакторинг был сделан в деятельность теги в манифесте, и я нашел их контекст вместо тегов ... это действительно глупо из Android Studio!

3
Ahmed Adel Ismail

Ну, я тоже получил эту ошибку,

Ошибка: активность по умолчанию не найдена

хорошо в моем случае это было для модуля износа .. Мне не нужна активность там, так что я просто делаю 

  1. перейти к редактированию конфигурации -> износ-> параметры запуска-> запуск-> ничего.
  2. Применить изменения. Нажмите Ok.
  3. Удалите существующий код для активности по умолчанию из файла манифеста.

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

3
PN10

только что столкнулся с этой ошибкой на Android studio 2.1.2 . решен добавлением фильтра намерений MAIN/LAUNCHER к активности по умолчанию вflavourmanifest, хотя фильтр уже был в активности по умолчанию в манифесте по умолчанию. Это даже было в объединенном манифесте, но студия не может найти его, пока я не продублировал фильтр в обоих манифестах.

2
mjollneer

Редактировать 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>
2
Tasdemir
  1. Build -> Rebuild Project 
  2. File -> Invalidate Caches.. -> Invalidate and restart

Меня устраивает. Перестройте проект, чтобы убедиться в отсутствии ошибок в проекте. Тогда мы можем аннулировать кеш. 

2
Artyom

мой опыт: убедитесь, что все ваши Java-файлы были идентифицированы, если IDEA не идентифицирует ваш Java-файл, поэтому он не может понять, что означает «Activity» 

удачи :)

enter image description here

2
jianwei-x

Android Manifest.xml Установите начальную активность следующим образом

<intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
2
Linu S

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

Кроме того, мой проект был создан с помощью Instant App (базовые, функциональные, мгновенные, подкаталоги приложений). Я думаю, что в этой Android Studio есть некоторые проблемы с файлами Manifest.xml, разделенными на эти несколько каталогов. 

Поэтому я изменил настройки в этом:  enter image description here

2
Michał Ziobro

Я столкнулся с той же проблемой. По некоторым причинам Android Studio заменила все атрибуты Android:name в большинстве файлов XML, включая манифест, на Android:subject, который не распознается Android Studio.

 enter image description here

Как вы можете видеть на картинке выше, IDE не распознает атрибут Android:subject. В результате он не сможет прочитать строки, которые определяют MainActivty. 

Решение состоит в том, чтобы просто изменить каждый Android:subject на Android:name и затем перестроить проект из меню Build -> Rebuild Project. Вы можете столкнуться с той же проблемой при перестройке проекта, поэтому сделайте то же самое, что и выше.

1
Saif Hakeem

Недавно я столкнулся с подобной проблемой. Проблема связана с файлом xml Activitymanifest . Проверьте, правильно ли закрыты лозунги.

1
ragav subramanian

Недействительные кэши/перезапуск


 Just Restart


После этого ваше приложение должно быть запущено!

1
Orlando Herrera

После обновления Android Studio с 1.2.x до 1.3 у меня возникла та же проблема, и я попробовал все предложения, но ничего не получалось. Тогда я сделал это:

Перейдите к Run/Debug Configurations. Выберите конфигурацию, которая дает ошибку и удалите ее. Создайте новый с тем же именем и настройками. После этого снова подключите USB-кабель и запустите приложение.

Это решило проблему для меня.

1
Friso van der Made

Я начал с демонстрационного приложения и изменил его. Я изменил путь Java внутри исходного кода с com -> example -> foo на свой собственный и отредактировал манифест; однако Android Studio (0.8.7) очень запуталась.

Я перепробовал все перечисленное выше, и у меня ничего не вышло. Может быть, это даже ухудшило ситуацию?

Мое окончательное решение состояло в том, чтобы отредактировать <projectname>.iml в подкаталоге .idea, открыв его в Android Studio (он же текстовый редактор).

До:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>

Я (повторно) добавил каталог src (2-я строка) . После:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>

После сохранения Android Studio перезагрузился и начал работать как положено.

1
TrophyGeek

Иногда удаление приложения для всех пользователей помогает. Зайдите в список приложений в настройках, зайдите в свое приложение или прокрутите до конца списка, затем удалите его. Надеюсь это поможет

1
hemant patel

ничто до этого не помогло мне, и Android Studio создала эту проблему со всеми моими приложениями, которые уже работали раньше - так что я знал - это не имеет отношения к моему коду.

ТЕПЕРЬ Я РЕШИЛ ЭТО:

Вам нужно сбросить Android Studio: Просто перейдите в C:\Users\имя_руса\androidStudio3.2 (или подобное) и удалите этот каталог.

Этот парень показывает вам, как именно это сделать в своем видео в старой версии: https://www.youtube.com/watch?v=AwZEliSPGwU&t

1
pipafria

Перейти кbuild.gradle(проект: xyz)

buildscript {
    repositories {
        jcenter() 
        google()
    }
allprojects {
    repositories {
        jcenter()
        google()
    }

// Just place 'google()' to the top of 'jcenter()'

buildscript {
    repositories {
        google()
        jcenter()
    }
allprojects {
    repositories {
        google()
        jcenter()
    // enter code here
    }
}

Это прекрасно работает для меня.

1
Sohail Gujjar

Все ответы выше не помогли мне. Попробуйте удалить это

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

в вашем AndroidManifest. Затем:

File > Sync Project with Gradle Files
1
Vladislaw Vivaldy

Ошибка: активность по умолчанию не найдена

Я решил так
Выполнить >> Изменить конфигурацию >> Приложение Android >> Введите путь к классу действий по умолчанию В поле «Запуск».

1
Lokesh Tiwari

Иногда эта ошибка из-за неправильного поведения студии Android из-за внутреннего кеша и системы построения проекта. Даже мы установили все идеально для активности по умолчанию .. Для такой проблемы я нашел решение, и оно работает для меня. 

Шаг 1. Android Studio ---> Файл -> Неверный кэш и закрытая студия Android.

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

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

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

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

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

1
Abhay Bhusari

Выход из Android Studio.

Перейти к пути C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

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

0
Abhiode

Надеюсь, этот ответ кому-нибудь поможет.

Если у вас уже есть тег <intent-filter>, просто убедитесь, что вы закрываете все теги правильно.

Моя ошибка заключалась в том, что я закрывал тег <activity> только с помощью </> вместо </activity>.

0
Alberto Alegria

У меня была эта проблема в течение 2 дней. Перепробовал все возможные решения, но ничего не получалось.

Наконец-то найти решение.

Вот что вам нужно сделать.

Закрыть Android Studio

Перейдите в C:\Users\UserName.Android и переименуйте папку build-cache в build-cache.bak

Перейдите в C:\Users\UserName.AndroidStudio3.3\system и переименуйте эти папки

кэши к caches.bak

compile-server для compile-server.bak

компилятор для compiler.bak

преобразование в преобразование.

external_build_system to external_build_system.bak

рамки для frameworks.bak

gradle to Gradle.bak

resource_folder_cache to resource_folder_cache.bak

Откройте Android Studio и снова откройте свой проект.

0
Rashid Kalhoro

Это поможет тому, кто зашел на эту страницу как я

Я получил ошибку Ошибка: активность по умолчанию не найдена после того, как я скопировал вставленный код из онлайн-курса. 

Ошибка была в первой строке файла MainActivity.Java 

Вместо пакета com.example.myname.justjava;

первой строкой был пакет com.example.Android.justjava; 

из кода, предусмотренного для обучения

Исправление это избавило от ошибки

0
Meenohara

Проверьте наличие тега Activity внутри тега application в файле AndroidManifest.xml.

0
HimalayanCoder

Я получил эту ошибку за попытку запустить приложение, у которого не было активности (это был проект androidTest). Поэтому я просто щелкнул правой кнопкой мыши на тестовом проекте и выбрал «Выполнить» или «Отладка» в контекстном меню.

0
live-love
<activity Android:name=".MainActivity">
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />
        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Просто добавьте это в свой файл манифеста в тегах, просто замените MainActivity на вашу активность по умолчанию, и Android.intent.action.youractivity будет работать

0
Ash

У меня была эта проблема на Android Studio 3.0.1, и она была вызвана ошибкой слияния. По какой-то причине мне не было выдано ни одного сообщения об ошибке в выводе сообщения. Мне пришлось проверить объединенный манифест (app-> manifest-> AndroidManifest.xml, затем вкладка «объединенный манифест»), и там внизу произошла ошибка, указывающая, что новейшая библиотека, добавленная в build.gradle, зависела от какая-то другая библиотека, minSdk которой выше моего приложения minSdk. Решение было в этом сообщении, и оно должно было добавить 

<uses-sdk tools:overrideLibrary="timber.log"/>

в AndroidManifest.xml. На самом деле эта библиотека (piwik 1.0.2) уже имела этот overrideLibrary в своем манифесте.

Странно было то, что другие члены команды не испытывали этой проблемы.

0
marcinj

Ну, я иногда не понимаю Android Studio ...

Я столкнулся с той же самой проблемой и попробовал то, что сказали ответы здесь, но безрезультатно. И затем я изменил одну вещь: действие в моем фильтре намерений содержало имя действия все в заглавных буквах, и я изменил его на маленький и оставил только слово MAIN в заглавных буквах, и это решило проблему! Как абсурдно! Я надеюсь, что это может кому-то помочь.

0
Anas Tasadduq

Я попробовал Invalidate кеш и перезапустить, не повезло. Затем я проверил манифест, правильно настроив основной вид деятельности.

Я проверил «Автономную работу» в разделе «Глобальные настройки Gradle» в «Файл» -> «Настройки» -> «Сборка, выполнение, развертывание -> Gradle».

Я снял этот флажок, изменил build.gradle (Project) для использования другой версии Gradle (com.Android.tools.build:gradle:3.3.1) и сохранил ее, чтобы активировать синхронизацию Gradle.

После синхронизации эта ошибка исчезла, я снова смог отладить.

0
smk

TL; DR: 

Убедитесь, что вы проверяете не только имя action и category, но и путь. Особенно, если вы сделали рефакторинг.

Решением для меня было внимательно проверить файл AndroidManifest. Я выполнил рефакторинг, и он не только обновил фильтры намерений, но и обновил путь к имени фильтра намерений:

 //type and value were added to the path here when I did the refactor
 <action Android:name="Android.intent.type.MAIN"/>
 <category Android:name="Android.intent.value.LAUNCHER"/>

Так должно быть: 

<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
0
BlackHatSamurai

некрасиво но у меня сработало

Если это сообщение об ошибке, моя проблема была в модуле, я просто полностью удалил тег приложения из манифеста моего модуля, и это сработало.

(также удалите ic_launcher из библиотеки модулей)

было:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.mymodule"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="16"
        Android:targetSdkVersion="23" />

    <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
       >
        <activity
            Android:name="com.example.mymodule.MainActivity"
            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>

</manifest>

сейчас:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.mymodule"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="16"
        Android:targetSdkVersion="23" />


</manifest>
0
Gdroid

В моем случае в AndroidManifest.xml был неверный стиль, как показано ниже. Удаление буквы «o» над тегом приложения решено. По всей видимости, Android Studio не обнаруживает ошибок типов в AndroidMainfest.xml 

<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>

o
<application Android:name=".AppName"
             Android:allowBackup="false"
             Android:icon="@drawable/ic_launcher"
             Android:label="@string/app_name"
             Android:theme="@Android:style/Theme.Light.NoTitleBar">
0
KufuT

Поздно в вечеринке . Просто очистить и восстановить. Проблема исчезнет.

0
SHAH MD MONIRUL ISLAM

проверьте все строки в вашем манифесте.

в моем случае у меня есть эта ошибка:

Android:theme="@Android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"

ничего в logcat

0
Taioli Francesco

Возможно, вам не хватает атрибутов. Обязательно включите это действие в файл манифеста

0
Suman Astani

Если указанные выше параметры не работают, попробуйте удалить папку .gradle.

Я использую Android Studio 3.3.1. Все мои проекты были в порядке, когда все внезапно перестали работать, говоря, что не было никакой активности. Даже новые проекты показывали ту же ошибку. После нескольких часов аннулирования кэша, пытаясь исправить файл манифеста. Я заметил, что он имеет некоторые отношения с такими библиотеками androidx, как (androidx.core: core-ktx). В некоторых проектах только обновление библиотек решает проблему, но на самом деле удалялась папка .gradle.

0
avelozo