"Atividade padrão não encontrada" na atualização do Android Studio

463

Atualizei o IntelliJ Idea de 12.0.4 para 12.10.

Agora todos os módulos no meu projeto Android dão o erro:

Erro: atividade padrão não encontrada

Voltei para a versão 12.0.4 e tudo voltou a funcionar.

Alguma ideia? Eu acho que pode ser um problema com um plugin ausente. Como o plug-in não está instalado, ele não consegue encontrar a atividade padrão. Outra coisa poderia ter sido uma configuração local, mas duvido. Excluí a pasta de configuração para verificar e isso não mudou nada.

Saad Farooq
fonte
3
você olhou para o manifesto? talvez mudar versões limpou ou algo assim? developer.android.com/guide/components/fundamentals.html
MaxOvrdrv
Não ... mas consegui trabalhar com a 12.0.4, mas reimporte o projeto do zero.
Saad Farooq
2
De manifesto a chave, provavelmente um erro de nome ou omissão, ou um problema de namespace
slezica
Um problema manifesto nos sete módulos do projeto que 12.0.4 é executado corretamente, mas 12.10 não é?
precisa saber é o seguinte
Não, mas uma mudança em um layout de espaço de nomes ou algo projeto, por exemplo, poderia ter ido fora de sincronia com o manifesto
slezica

Respostas:

889

Se o erro ocorrer após a atualização das versões do IntelliJ IDEA ou Android Studio ou após a geração de um novo APK, talvez seja necessário atualizar o cache do IDE.

File -> Invalidate Caches / Restart...
Sky Kelsey
fonte
2
Você também pode tentar registrar um bug aqui: youtrack.jetbrains.com/issues/IDEA Acho que eles são muito bons no acompanhamento de bugs que eu arquivo.
quer
Acho que foi isso ... vou continuar investigando ... não tive tempo de abrir o diretório novamente como um novo projeto em cada uma das plataformas.
Saad Farooq
Estou tendo o mesmo problema. No meu arquivo de manifesto, também recebo o erro "Não é possível resolver o símbolo 'MainActivity'". Importei o projeto do Eclipse.
Roberto
28
Isso funcionou para mim no Android Studio, mas depois de reiniciar, eu também tive que fazer Ferramentas -> Android -> Projeto de sincronização com arquivos Gradle.
vaughandroid
304

Não posso comentar por que a atualização do IntelliJ pode causar esse problema porque eu não o uso.

No entanto, esse erro: "Atividade padrão não encontrada" parece indicar que você não possui uma atividade declarada no AndroidManifest.xml marcada como a atividade principal, a ser iniciada quando o aplicativo for iniciado.

Você deve ter pelo menos uma atividade parecida com esta:

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

Se você não tiver pelo menos uma atividade com um filtro de intenção como esse, provavelmente verá a mensagem de erro incluída aqui.

Você deve adicionar esse filtro de intenção à Atividade que deseja abrir ao iniciar o aplicativo e isso deve resolver o seu problema.

mattgmg1990
fonte
formiga constrói-lo bem e assim que faz IntelliJ 12.0.4
Saad Farooq
Iniciei meu aplicativo no Eclipse, sim, tenho uma atividade padrão. Como importei meu aplicativo para o Android studio, tudo correu bem até que um dia eu adicionei o gerenciador de notificações e outras coisas, ou seja, quando deparei com esse erro. Eu fiz Arquivo-> Invalidar cache-> Reiniciar e isso foi corrigido. Mas o erro não foi causado pela falta de atividade padrão, como você afirmou.
The_Martian
Trabalhou para mim também! MAS OBSERVAÇÃO: escreva "android.intent.xxx" em letras minúsculas - minha culpa foi que a conclusão do Android Studio sugeriu letras maiúsculas (isso levou uma hora) :-(
Philipp P
22
Para quem é relativamente novo no Android e acabou de estragar seu projeto do Android Studio, esta é a resposta que você está procurando. A resposta aceita é quando uma atualização estraga tudo para você.
Tom Kidd
3
Eu configurei isso e meu projeto já é executado várias vezes e de repente ele sai errado. Não sei onde está errado. Talvez seja um bug potencial do AS.
Licia Julius 26/10/18
81

Seu aplicativo tem a atividade de inicialização padrão?

possivelmente este poderia ser seu erro

insira a descrição da imagem aqui

Etapa 1 : Selecione Editar configurações

insira a descrição da imagem aqui

Etapa 2 : observe este aviso: Atividade padrão não encontrada insira a descrição da imagem aqui

Etapa 3 : selecione uma atividade padrão insira a descrição da imagem aqui

insira a descrição da imagem aqui

Etapa 3 : salve suas alterações e finalize

insira a descrição da imagem aqui

Boa sorte

insira a descrição da imagem aqui

David Hackro
fonte
Boa resposta! Isso ajuda se não houver atividade no aplicativo. (apenas serviço). você precisa mudar em "atividade" para "fazer não a atividade de lançamento"
Udi Reshef
Esta é a única resposta que funcionou para aplicativos sem atividade. Obrigado.
sephiron
Isso funcionou para mim! Na verdade, eu tive uma atividade padrão no manifesto, mas por algum motivo o Android Studio não encontrou isso.
Ocramot 14/03/19
2
Segui os passos acima mencionados, mas agora ele diz que "A atividade 'MainActivity' não está declarado no AndroidManifest.xml" embora MainActivity está lá
Far
Essa resposta foi fácil de seguir. Também o comentário de @Udi Reshef graças
Bishwas Mishra
66

A maneira correta de fazer isso é adicionar o seguinte ao arquivo de manifesto:

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

Deve ser inserido entre:

<application> </application>

Não há necessidade de invalidar caches.

Yuriy
fonte
Trabalhou para mim também! MAS NOTE: escreva "android.intent.xxx" em letras minúsculas - minha culpa foi que a conclusão do Android Studio sugeriu letras maiúsculas (isso me levou uma hora) :-(
Philipp P
Bom ponto: "Isso deve ser inserido entre: <application> </application>". Este foi o meu problema. Muito obrigado.
Dennis Mathew
Tenha muito cuidado ao refatorar seus códigos. no meu próprio caso, refatorei erroneamente 'categoria' como 'telefone', assim, android.intent.category foi alterado para android.intent.phone.
Kenny Dabiri
Usei o assistente de criação de projetos do Android Studio e ainda precisava fazer isso manualmente. Estou errado em pensar que isso é um bug?
pdoherty926
45

Se você estiver trabalhando em um aplicativo de widget, esta solução deve funcionar para você:

  1. Vamos para Edit Configuration
  2. Defina Launch Optioncomonothing
Kishan Vasoya
fonte
1
você é demais!
Rahul Singh
1
só isso funciona para mim !!
Malith Ileperuma 03/04
44

Tente clicar com o botão direito do mouse no projeto e escolha Abrir configurações do módulo . Em seguida, vá para a guia Fontes no seu módulo, localize a pasta src , clique com o botão direito do mouse e marque-a como Fontes (cor azul).

EDIT: Não há guia de fontes nas versões posteriores do Android Studio, mas você pode editar o arquivo build.gradle : https://stackoverflow.com/a/22028681/1101730

Micer
fonte
Isso me ajudou, percebi que o intellij retirou muitos arquivos de origem do src na guia Fontes. Mudei meu pacote para fora do projeto e volta em que resolveu o meu problema.
Jesse Preto
2
Fiz o mesmo tipo de coisa, mas cliquei com o botão direito do mouse na pasta src e fui para "Marcar o diretório como ..." e depois "Sources Root". - Android Estúdio 0.8.6
elliptic1
1
Funciona como um encanto, removido a raiz atual, e acrescentou a pasta pai do src e gen novamente
Udi Oshi
1
uma maneira rápida de acessar as configurações do módulo é clicar no navegador do projeto e pressionar F4
whyoz
3
isso foi descontinuado, pois não há mais a guia Fontes em Configurações do módulo aberto .
amigos
23

No Android Studio, em Executar / Depurar Configuração -> Aplicativo Android -> Geral -> Atividade -> selecione a opção "Não iniciar Atividade".

TouchBoarder
fonte
3
Essa é a solução quando o projeto é um serviço ou não possui atividade padrão por algum outro motivo.
Aharon Manne
2
No Android Studio 2.2.3; Configuração de execução / depuração -> Aplicativo para Android -> myApp -> Geral -> Opções de lançamento -> Lançamento: Nothing
liteflier
21

Nada acima me ajudou. Depois de algum tempo, descobri que a IDEA alterava os nomes das ações para maiúsculas. Gostar:

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

Depois de voltar ao normal, o IDEA reconhece a atividade padrão:

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

Primeiro, verifique se você incluiu a atividade padrão no manifesto.

Exemplo:

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

Se você já tentou de tudo e nada parece funcionar, então

  • Exclua o cache do% Home% \. Gradle \ caches e sincronize o projeto novamente.

Ou verifique esta resposta

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

Salman
fonte
1
Android Studio 3.2.1: Arquivo -> Projeto de sincronização com arquivos Gradle ::: Foi necessário fazer isso após invalidar o cache e reiniciar antes que o problema desaparecesse.
Kreebog
1
Isso funcionou para mim. O que eu acredito que causou isso foi mover minha atividade principal para um diretório diferente, a jusante da raiz.
Shn_Android_Dev 16/04/19
11

Este método funciona para mim Clique no ícone do aplicativo e escolha editar configurações. Na configuração de edição, escolha a atividade especificada em vez da atividade padrão. Em seguida, forneça o caminho da atividade abaixo.

Clique no aplicativo e edite a configuração

Escolha a atividade especificada e o diretório

No final, sincronize com os arquivos gradle.

Durgaprasad Nagarkatte
fonte
11

No meu caso File -> Invalidate Caches / Restart... não ajudou

Tudo estava bem com o meu projeto e, claro, eu tinha o próximo filtro de intenção para minha atividade

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

O que realmente me ajudou foi a exclusão de pastas de cache do Android / Gradle (elas podem crescer de 10 a 30 GB)

Vá para C:\Users\YOUR_USER_WINDOWS_NAMEe exclua as próximas pastas

  • .android
  • .AndroidStudio3.2
  • .gradle

(você pode salvar algumas configurações do Android em .AndroidStudio3.2 antes de excluí-lo, se quiser)

Você pode criar um arquivo bat CLEAR_CACHE.cmdcomo este para excluir pastas sem a Lixeira

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

funcionaria muito mais rápido e você não precisa excluí-lo também da Lixeira

ps colocar CLEAR_CACHE.cmd emC:\Users\YOUR_USER_WINDOWS_NAME

Também é uma boa idéia excluir a pasta do Android Studio e fazer o download novamente

user924
fonte
8

Mudei meu filtro de intenção para

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

Apenas adicione a opção PADRÃO também. Eu estava usando a biblioteca Process Phoenix e isso me levou a definir uma intenção padrão. Esta adição resolveu meu problema.

Rorschach
fonte
7

Eu recebi esse erro.

E descobriu que no arquivo manifesto na atividade do iniciador eu não coloquei actione categoryno filtro de intenção.

O errado:

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

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

</activity>

O certo:

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

Saia do Android Studio.

Ir para o caminho C:\Users\YOUR_WINDOW_USER_NAME\.AndroidStudio3.3\system

Remover / caches pasta e pasta / tmp

Abhishek Garg
fonte
6

@TouchBoarder quase conseguiu. Embora a seleção de "Não iniciar atividade" resulte em nada é iniciado.

No Android Studio, em Configuração de Execução / Depuração -> Aplicativo Android -> Geral -> Atividade -> selecione a opção "Iniciar:"

Escolha sua atividade. Isso não corrige exatamente o comportamento pretendido, mas substitui-o corretamente.

Edite as configurações de execução / depuração e especifique a atividade de inicialização

John
fonte
4

Caso seu aplicativo não possua uma Atividade (apenas um serviço, por exemplo), altere a opção 'Iniciar' da configuração de execução / depuração para Nada.

Preto
fonte
4

Encontrei isso no meu código:

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

Se você olhar com muito cuidado, deve ser <activity android:name=".MainActivity"> .

Aparentemente, refatorei uma "atividade" em algum lugar e ela também mudou os nomes no AndroidManifest.

Muz
fonte
no meu caso a renomeação de FilterClasses levaram à <intenção filterlist> marcas :)
Emanuel
2
Tenha muito cuidado ao refatorar seus códigos. no meu próprio caso, refatorei erroneamente 'categoria' como 'telefone', assim, android.intent.category foi alterado para android.intent.phone.
Kenny Dabiri
4

Encontrei este blog que realmente corrigiu esse problema no meu caso. Acontece que você precisa adicionar algum tipo de intenção:

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

Definitivamente era direto. Referência:

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

Site é divertido
fonte
4

Todas as respostas acima não me ajudaram. Tente remover isso

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

no seu AndroidManifest. Então:

File > Sync Project with Gradle Files
Vladislaw Vivaldy
fonte
Eu descobri que Syncing Project With Gradle Filesfuncionava bem como vinho. A propósito, meu erro ocorreu do nada.
Homerun
4

No meu caso, refatorei uma variável de membro denominada "atividade", renomei-a para "contexto" ... descobri que o refator foi feito para as tags de atividade no manifesto e, em vez disso, encontrei essas tags de contexto ... isso é realmente estúpido no Android Studio!

Ahmed Adel Ismail
fonte
2
este é um bug do estúdio Android, você está certo @tere bentikh
mayank_droid
3

Eu tenho o mesmo problema no Android Studio 3.3 Canary 3. O projeto da versão estável do Android Studio 3.0 funciona primeiro corretamente, do que após algumas limpezas / reconstruções, ele começa a mostrar o erro Sem atividade padrão. Tentei reinstalar esta versão alfa do Android Studio: erro novamente. Mas, em seguida, iniciá-lo no antigo Android estável e usando a instalação do apk, e este apk funciona corretamente.

Além disso, meu projeto foi criado com o Instant App (subdiretórios base, recurso, instantâneo, aplicativo). Acho que este Android Studio tem alguns problemas com os arquivos Manifest.xml separados nesses vários diretórios.

Então, eu mudei nas configurações para isso: insira a descrição da imagem aqui

Michał Ziobro
fonte
3

Desde o Android Studio 3.5 or 3.6, comecei a Default Activity not foundme cansar Invalidating Caches & Restart, reconstruindo o projeto etc.

Acabou que a maneira como eu manuseio multi-módulos e manifestos era errônea. Eu tinha o Manifesto da atividade padrão apenas no módulo de biblioteca, mas deveria estar nos dois módulos de aplicativo.

Assumindo librarymodule appmodule1 appmodule2

  1. Remova HomeActivitydo librarymodulemanifesto qualquer.
  2. Adicionar:
class AppModuleActivity1 : HomeActivity() to appmodule1
class AppModuleActivity2 : HomeActivity() to appmodule2
  1. Para appmodule1manifestar a applicationtag interna , adicionei:
        <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. O mesmo acontece com a appmodule2alteração de 2 por 1 na nomeação.
Przemo
fonte
2
  1. Build -> Rebuild Project
  2. File -> Invalidate Caches.. -> Invalidate and restart

Funciona para mim. Recrie o projeto para garantir que não haja erros no projeto. Então podemos invalidar o cache.

Artyom
fonte
2

Erro: atividade padrão não encontrada

Eu resolvi desta maneira
Execute >> Editar Configuração >> Aplicativo Android >> Digite o caminho da sua classe de atividade padrão na caixa de edição "Iniciar".

Lokesh Tiwari
fonte
2

acabou de enfrentar esse erro no android studio 2.1.2. resolvido adicionando filtro de intenção MAIN / LAUNCHER à atividade padrão no manifesto de sabor , embora o filtro já estivesse na atividade padrão no manifesto padrão. Até estava no manifesto mesclado, mas o estúdio não o encontrou até que eu duplicasse o filtro nos dois manifestos.

mjollneer
fonte
2

minha experiência: verifique se todo o seu arquivo java foi identificado, se a IDEA não identificar o seu arquivo java, para que ele não seja capaz de entender o que significa "Atividade"

boa sorte :)

insira a descrição da imagem aqui

jianwei-x
fonte
2

Bem, eu também tenho esse erro,

Erro: atividade padrão não encontrada

Bem, no meu caso, foi para o módulo de desgaste. Não preciso de uma atividade lá, então o que faço é simplesmente

  1. vá para editar a configuração -> usar -> Opções de Lançamento -> Iniciar -> Nada.
  2. Aplicar alterações. Clique em Ok.
  3. Remova o código existente da atividade padrão do seu arquivo de manifesto.

Nota: Não esqueça de limpar o projeto e sincronizar arquivos gradle.

PN10
fonte
2

Editar 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>
Tasdemir
fonte
você poderia expandir essa resposta? Apenas um bloco de código não é muito útil
Azsgy 30/03
2

Às vezes, esse erro ocorre devido ao mau comportamento do android studio devido ao cache interno e ao sistema de criação de projetos. Mesmo nós definimos tudo perfeito para a atividade padrão. Para esse problema, encontrei uma solução e está funcionando para mim.

Etapa 1. Android Studio ---> Arquivo -> Cache inválido e Android Studio fechado.

Passo 2. Vá para o caminho C: \ Users \ USER.AndroidStudio3.2 \ system

Etapa 3. Altere o nome com a extensão .back da pasta abaixo Exemplo: o compilador deve ser compiler.back

  • compilador
  • compilador-servidor
  • conversão
  • external-build_system
  • estrutura
  • gradle
  • resource_folder_cache

Passo 4: inicie o Android studio e abra seu projeto.

Espero que funcione para você.

Abhay Bhusari
fonte
1
Essa foi a única resposta que funcionou para mim, mas, além do processo descrito aqui, você deve remover o conteúdo da pasta "system / caches", caso contrário, ela só funcionará na primeira vez após o processo e reiniciar o Android Studio, em seguida, voltou a acontecer a mesma atividade padrão não encontrada.
Gerrard
A única opção que funcionou para mim. Isso aconteceu após uma reinicialização do computador, que provavelmente corrompeu alguns arquivos, como você disse. A outra opção era reinstalar o android studio, mas, felizmente, limpar as pastas especificadas é suficiente.
RJFares 15/03/19
2

Às vezes, sincronizar projeto com arquivos Gradle. Para corrigir esse problema geral, você deve

  1. Sair do Android Studio
  2. Vá para USER -> AndroidStudio -> system -> caches
  3. Excluir essa pasta
  4. Inicie o Android Studio.

Ele irá re-indexar seus arquivos e isso deve funcionar

Graças a kirtan403 de uma pergunta semelhante.

para fora
fonte