Ответ 1
Если вы видите, что эта ошибка возникает после обновления версий IntelliJ IDEA или Android Studio или после создания нового APK, вам может понадобиться обновить кеш IDE.
File -> Invalidate Caches / Restart...
Я обновил IntelliJ Idea с 12.0.4 до 12.10.
Теперь все модули в моем проекте Android выдают ошибку:
Ошибка: Действия по умолчанию не найдены
Я вернулся к 12.0.4, и все снова работает.
Есть идеи? Я думаю, что это может быть проблема с отсутствующим плагином. Поскольку плагин не установлен, он не может найти активность по умолчанию. Другой вещью мог быть локальный конфиг, но я сомневаюсь в этом. Я удалил папку конфигурации, чтобы проверить, и это ничего не изменило.
Если вы видите, что эта ошибка возникает после обновления версий 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: сохраните изменения и завершите
Удача
Правильный способ сделать это - добавить в файл манифеста следующее:
<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>
Нет необходимости в недействительности кешей.
Попробуйте щелкнуть правой кнопкой мыши по проекту и выбрать Открыть настройки модуля. Затем перейдите на вкладку Источники в своем модуле, найдите папку src, щелкните ее правой кнопкой мыши и пометьте ее как Источники (синий цвет).
РЕДАКТИРОВАТЬ: В последующих версиях Android Studio нет вкладки источников, но вместо этого вы можете редактировать файл build.gradle: fooobar.com/questions/28783/...
Если вы работаете над виджетами, это решение должно работать на вас:
Edit Configuration
Launch Option
в nothing
В 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>
Сначала убедитесь, что вы включили активность по умолчанию в манифест.
Пример:
<activity android:name=".DefaultActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Если вы все перепробовали и ничего не работает
Или проверьте этот ответ
Я получил эту ошибку.
И обнаружил, что в файле манифеста в активности запуска я не поместил 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>
Этот метод работает для меня Нажмите на значок приложения, а затем выберите изменить конфигурации. В конфигурации редактирования выберите указанное действие вместо действия по умолчанию. Затем укажите путь действия ниже.
В конце синхронизирую с файлами Gradle.
В моем случае 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
перед удалением, если хотите)
Вы можете создать файл 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
@TouchBoarder почти имел это. Хотя выбор "Не запускать активность" не приводит к запуску ничего.
В Android Studio в разделе "Конфигурация запуска/отладки" → Приложение для Android → Общие → Активность → выберите параметр "Запуск:"
Выберите свою активность. Это не точно фиксирует предполагаемое поведение, а скорее переопределяет его правильно.
В случае, если ваше приложение не имеет Activity (только для службы), измените параметр "Запуск" на запуск/отладку "Нет".
Я изменил свой фильтр 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, и это побудило меня определить намерение по умолчанию. Это дополнение решило мою проблему.
Я нашел это в своем коде:
<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.
Я нашел этот блог, который действительно исправил эту проблему в моем случае. Оказывается, вы должны добавить какое-то намерение:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
Это было определенно просто. Ссылка:
Все ответы выше не помогли мне. Попробуйте убрать это
<?xml version="1.0" encoding="utf-8"?>
в вашем AndroidManifest. Затем:
File > Sync Project with Gradle Files
Ну, я тоже получил эту ошибку,
Ошибка: активность по умолчанию не найдена
Ну, в моем случае это был для модуля износа. Мне не нужна активность там, так что я делаю просто
Примечание. Не забудьте очистить проект и синхронизировать файлы Gradle.
в моем случае я реорганизовал переменную-член, которая была названа "активностью", я переименовал ее в "контекст"... я узнал, что рефактор был сделан тегами activity в манифесте, и я нашел теги context вместо этого... это действительно глупо от Android Studio!!
У меня та же проблема в Android Studio 3.3 Canary 3. Проект из стабильной версии Android Studio 3.0 вначале работает правильно, а после некоторых очисток/перекомпоновок начинает отображаться ошибка "Нет активности по умолчанию". Я попытался переустановить эту альфа-версию Android Studio: ошибка снова. Но потом запустил его в старом стабильном Android и с помощью apk install, и этот apk работает правильно.
Кроме того, мой проект был создан с помощью Instant App (базовые, функциональные, мгновенные, подкаталоги приложений). Я думаю, что в этой Android Studio есть некоторые проблемы с файлами Manifest.xml, разделенными на эти несколько каталогов.
Build -> Rebuild Project
File -> Invalidate Caches.. -> Invalidate and restart
Это работает для меня. Перестройте проект, чтобы убедиться в отсутствии ошибок в проекте. Тогда мы можем аннулировать кеш.
просто столкнулся с этой ошибкой в студии Android 2.1.2. разрешен путем добавления MAIN/LAUNCHER умывальника к действию по умолчанию в манифесте flavor, хотя фильтр уже был включен по умолчанию в манифесте по умолчанию. Это даже было в объединенном манифесте, но студия не может найти его, пока я не дублирую фильтр в обоих проявлениях.
мой опыт: убедитесь, что весь ваш java файл был indentify, если IDEA не указывает ваш java файл, поэтому он не может понять, что означает "Активность"
удачи:)
Android Manifest.xml установите начальную операцию следующим образом
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Редактировать 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>
Иногда эта ошибка из-за неправильного поведения андроид-студии из-за внутреннего кеша и системы сборки проекта. Даже мы установили все идеально для активности по умолчанию. Для такой проблемы я нашел решение, и оно работает для меня.
Шаг 1. Android Studio ---> File--> Неверный кэш и закрытая андроид студия.
Шаг 2. Перейти к пути C:\Users\USER.AndroidStudio3.2\system
Шаг 3. Измените имя с расширением .back нижеуказанной папки Пример: компилятор должен быть compiler.back
Шаг 4: Запустите Android studio и откройте свой проект.
Я надеюсь, что это будет работать для вас.
В моем случае была ошибка в 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">
Я начал с демонстрационного приложения и изменил его. Я изменяю путь 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>
I (re) добавлен каталог 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 перезагрузился и начал функционировать, как ожидалось.