Atividade padrão não encontrada no Android Studio

93

Acabei de atualizar para o Android Studio 0.2.8 e recebo um erro que diz "Atividade padrão não encontrada" quando tento editar as configurações de execução.

Quando eu inicio o Android Studio, recebo este erro "O acesso é permitido apenas a partir do thread de despacho de evento"

A atividade que estou usando é uma atividade de fragmento.

Até agora, tentei reconstruir e invalidar caches / reiniciar. Ambos eram inúteis.

Diga-me o que posso fazer para resolver o problema.

Vipassana Vijayarangan
fonte
Possível duplicata do erro: atividade padrão não encontrada
Sky Kelsey

Respostas:

45

No Android Studio, clique com o botão direito no projeto e escolha Open Module Settings . Então vá para a aba Sources em seu módulo, encontre a pasta src , clique com o botão direito nela e marque-a como Sources (cor azul).

EDITAR: não há guia de fontes nas versões posteriores do Android Studio, mas você pode editar o arquivo build.gradle em vez disso: https://stackoverflow.com/a/22028681/1101730 (obrigado pelo comentário Josh)

Micer
fonte
27
Como eu poderia fazer isso em 0.6.1 ? Não vejo a guia Fontes .
lschlessinger
7
nem eu. Existem propriedades, assinatura, sabores, tipos de construção e dependências
Junior Mayhé
4
Eu não tinha a guia "Fontes", então editei o arquivo build.gradle: stackoverflow.com/a/22028681
Josh
2
Perfeito! Obrigado por ajudar @Micer. Pessoal, no seu projeto IntelliJ aperte 'F4', então você tem três abas (Sources, Paths, Dependencies), vá até a aba 'Sources' e verifique se a pasta 'src' (na estrutura em árvore) está azul. Caso contrário, pressione 'Alt + S' para incluir a pasta de origem na Estrutura do Projeto.
Ryan Amaral
1
@IgorGanapolsky Você está certo, parece que a guia Fontes foi removida em versões posteriores do Android Studio. Verifique a resposta de Josh.
Micer
51

Você adicionou ACTION_MAINfiltro de intenção à sua atividade principal? Se você não adicionar isso, o Android não saberá qual atividade iniciar como atividade principal.

ex:

<intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <action android:name="com.package.name.MyActivity"/>
      <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Anup Cowkur
fonte
1
Sim, isso é feito. Corrigi o "Acesso é permitido a partir do segmento de despacho de evento apenas" usando oracle JDK em vez de openJDK. A atividade padrão ausente ainda persiste
Vipassana Vijayarangan,
5
Além disso, o nome "com.package.name.MyActivity"pode ser omitido se todo o <intent-filter>elemento estiver dentro de um <activity>elemento que corresponda à sua MyActivity no seu namespace.
Xavi Montero
Hah, renomeei uma classe chamada Filterincluindo todas as variáveis ​​nomeadas filtere, aparentemente, o Android Studio decidiu incluir AndroidManifest.xmle <intent-*filter*>. Essa resposta me fez checar AndroidManifest.xmle me ajudou a encontrar o bug =)
Stephan Henningsen
Onde isso está documentado? Não consigo encontrar ...
mirabilos
33

Tive o mesmo problema ao importar um projeto para o Android Studio, provavelmente causado pelo fato de o projeto ter sido desenvolvido em uma versão anterior do Android Studio do que a instalada atualmente no meu computador.

O que resolveu foi simplesmente escolher:

File -> Invalidate Caches / Restart...

e então selecionando Invalidate and Restart.

sintagma
fonte
1
Muito obrigado @syntagma, sua orientação resolveu meu problema após horas de esforço.
MMG
16

Se você não tem a guia e começou com uma atividade vazia, tente isto. Abaixo está um exemplo de código de amostra:

<application android:label="@string/app_name">

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

</application>

Agora vá para o arquivo AndroidManifest.xml. Em seguida, copie o filtro de intent deste código. Observe o seu arquivo de manifesto realmente bom e cole o filtro de intent no local exato em que está no código acima. (após a parte .yourActivityName> do manifesto.) Espero que tenha ajudado.

Sedrick
fonte
13

Se você ainda estiver recebendo um erro que diz "Atividade padrão não encontrada" ao tentar editar as configurações de execução, mesmo depois de executar:

Invalide o cache e reinicie .

Em seguida, tente excluir a pasta Configurações / Preferências:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

ou no Mac:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2
Phileo99
fonte
Se você renomeou seus pacotes ou mudou de branch de seu controle de versão, às vezes o Android Studio não reconhece todos os arquivos e bagunça as coisas. A única solução que funcionou para mim foi fechar o AS e, em seguida, excluir .AndroidStudioXY (onde XY é o número da sua versão) que @ Phileo99 apontou.
Zbarcea Christian
1
Você salvou minha vida! Basta fazer isso / <USER_HOME_DIR> /. AndroidStudioPreview3.2
nadafafif
de nada @nadafafif! por favor, vote positivamente na minha resposta se isso ajudou você.
Phileo99
@ Phileo99 Já fiz isso. Não consegui me impedir de fazer isso. :) Felicidades. Continue ajudando assim.
nadafafif
Isso ajudou, mas esteja ciente de que você irá baixar muitas coisas. O download demorou cerca de 15 minutos
Valgaal
10

Quando cliquei em "Abrir configurações do módulo", não havia guia "Origem" , acho que foi removida para versões mais recentes do Android Studio (estou no 0.8.14). Então, eu tive que fazer isso:

Adicione estas linhas ao build.gradlearquivo dentro do android { ... }bloco:

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

Depois de editar o arquivo, clique em Ferramentas> Android> Sincronizar projeto com arquivos do Gradle .

Crédito a esta resposta e este comentário .

Josh
fonte
9

Seguir funcionou para mim. Em Executar -> Editar configuração .

insira a descrição da imagem aqui

Código
fonte
Aconselho contra esta solução, pois fez com que o aplicativo não fosse mais mostrado na lista de aplicativos disponíveis no Samsung Galaxy S5 Neo e no Samsung Galaxy S6.
Teun Kooijman
3

Meu problema se resumia a um erro adicional que aparecia às vezes, informando

Manifest Merger failed with multiple errors in Android Studio

O que estava causando meu problema era o fato de que havia vários manifestos (um manifesto de depuração e um manifesto no novo módulo que acabei de importar), e eles não estavam sendo mesclados corretamente devido a isso. Depois de ver essa resposta , consegui analisar o manifesto mesclado, encontrar a causa do problema e corrigi-lo.

ConcernedHobbit
fonte
2

isso aconteceu comigo porque eu coloquei os caminhos em maiúscula no manifesto. mudou:

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

para

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

e foi consertado

dabluck
fonte
Você salvou meu dia! Obrigado
Siva Kumar
2

Encontrei o mesmo problema hoje e estava analisando as respostas aqui.

Para mim, a diferença é que ontem funcionou bem, então percebi que não poderia ser realmente um problema de configuração, nem a configuração nem a versão do Android Studio mudaram.

Felizmente, tentei reiniciar o Android Studio antes de tentar qualquer uma das outras respostas e, felizmente, isso resolveu o problema.

Portanto, para todas as pessoas que se deparam com isso: a primeira coisa a tentar é reiniciar o Android Studio e apenas se isso não resolver o problema, tente as outras respostas aqui.

Alexander Köb
fonte
2

Acabei de encontrar o mesmo erro no Android Studio 1.5.1. e acabei de encontrar a origem do problema. Não tenho certeza se a causa foi um erro humano ou alguma falha estranha no comportamento do IDE, mas nenhuma das perguntas StackOverflow existentes sobre este assunto parecia mostrar algo sobre isso, então imaginei que postaria como uma resposta de qualquer maneira.

Para mim, um dos membros da minha equipe ou o próprio IDE alterou a entrada do manifesto de atividades do iniciador, fazendo com que ficasse assim:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

Embora deva, na verdade, ser assim:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

Portanto, verifique duas, três, quatro vezes o formato da atividade do iniciador no manifesto e talvez consiga economizar algum tempo.

Espero que isto ajude.

EDITAR: Eu sugiro fortemente que as pessoas não respondam que sugerem selecionar manualmente uma atividade do iniciador dentro das opções de configuração do seu módulo, pois isso fez com que o aplicativo não fosse mais mostrado na lista de aplicativos instalados em ambos os Samsung Galaxy S5 Neo e o Samsung Galaxy S6 (pelo menos para mim).

Teun Kooijman
fonte
2

insira a descrição da imagem aqui

Pressione app -> Editar configurações
Depois disso, altere o valor em Launch em "Nothing"

Valentin
fonte
1

Certifique-se no manifesto de que o nome do pacote é o mesmo de sua atividade principal

U três
fonte
1
  1. No Android Studio, mude para a perspectiva Project (não a perspectiva Android).

  2. Certifique-se de que seu projeto segue a estrutura padrão do plugin gradle (ou seja, project_dir / app / src / main / java ... )

  3. Exclua todas as pastas de construção e subpastas que você vê.

  4. Na barra de ferramentas, clique em Build -> Clean Project e , em seguida, Build -> Rebuild Project .

  5. Tente executar o projeto.

IgorGanapolsky
fonte
1

Você pode fazer com que o Android Studio não reclame acessando o menu "Editar configurações" (toque em "Shift" três vezes, digite "Editar configurações") e, em seguida, altere Opções de inicialização> Iniciar para "Nada".

Provavelmente adicionarei uma atividade genérica contendo instruções, apenas para evitar qualquer confusão.

Sayali
fonte
Isso economizou meu tempo
Sayali
1

No meu caso, funcionou quando removi a pasta .idea do projeto (Projeto / .ida) e reabri o Android Studio novamente.

Yousef Gamal
fonte
Remover a pasta .idea ajudou no meu caso, obrigado! Para esclarecimento todos os arquivos com extensão ".iml" estavam dentro da pasta .idea. NÃO remova apenas arquivos .iml, pois isso pode causar outros erros!
Cordis Audax Agrinova
0
  1. Clique com o botão direito no projeto e escolha Open Module Settings.
  2. Vá para a guia Fontes em seu módulo.
  3. Encontre sua pasta src.
  4. Clique com o botão direito sobre ele e marque-o como Fontes.

Isso resolveu o erro no meu caso.

ConquerAndroid
fonte
0

Se você alterou o nome dos diretórios (estrutura de classe), por exemplo com.dir.sample para com.dir.sample1, depois disso não se esqueça de alterar o pacote com.dir.sample para com.dir.sample1.

Zafer
fonte
0

Modifique "Workspace.xml" (pressione Ctrl + Shft + R para pesquisá-lo)

  1. Modifique o nome da atividade com o nome do pacote

  2. Certifique-se de alterar "name =" USE_COMMAND_LINE "para value =" false "

  3. Recarregue o projeto

Feito!

user582645
fonte
Eu pesquisaria com Ctrl + Shft + F, + R = substituir onde F = localizar.
Shishdem
0

Para quem, como eu, estava lutando para encontrar a "guia Fontes":

insira a descrição da imagem aqui

Aqui você tem que marcar sua pasta "src" em azul (primeiro clique em Mark as: Source , depois na pasta src ), e você está pronto para ir.

Rocío García Luque
fonte
0

Existem duas etapas que você pode seguir:

  1. Vá para configurações e digite o nome da atividade a ser lançada
  2. Se ainda não estiver funcionando, desative o Instant Run
Harish Rana
fonte
0

Eu tentei todas as soluções, mas não funcionou. do que tentei desativar o Instant run no meu estúdio android.

Acesse Configurações ou preferências do Android Studio (para MAC) -> Build, Execution, Deployment -> Instant Run .

desmarque a funcionalidade de execução instantânea e depois clique em sincronizar o projeto com os arquivos do Gradle no menu de arquivos

agora execute sua construção ...

Mayur Sakhiya
fonte
Isso não é mais válido para Android Studio 4.0+
Jorge E. Hernández
0

Em alguns casos você pode ter o modelo com algum categorycampo, se você for refatorá-lo em todos os lugares, ele pode refatorá-lo no arquivo de manifesto e então a tag xml se tornará inválida.

Pavel Poley
fonte
0

Muitas possibilidades podem acontecer para este tipo de caso (Default Activity not Found) Se todos os códigos estiverem bem, principalmente no Manifest, basta invalidar o Cache e reiniciar o studio,

Mas às vezes isso acontece quando você tem uma declaração de atividade duplicada no manifesto, não apenas para a atividade principal, mas também é acionada por atividades filhas.

Isso aconteceu comigo, a atividade padrão não foi encontrada porque eu tenho atividades filho duplicadas no manifesto, depois de excluído isso, está tudo bem

Masbayu
fonte
0

Verifique se há alguma tag duplicada em seu AndroidManifest.xmlarquivo.

Devansh Maurya
fonte
0

Eu descobri. Eu adicionei por engano a palavra-chave final na declaração de atividade. Depois de retirado, tudo funciona!

public  class SplashActivity extends AppCompatActivity {
...
}
Asad35Waheed
fonte
-1
  1. No Android Studio

  2. Vá para editar a configuração.

  3. Selecione o aplicativo.

  4. escolha o caminho da atividade do almoço.

  5. aplique, OK.

    Obrigado!!

Mstack
fonte
-1

O nome da atividade padrão foi alterado (como SplashActivity -> SplashActivity1) e funciona para mim

Mehmet Agah Balbay
fonte