"Não é possível resolver o símbolo R" no Android Studio

715

Em todas as instâncias de todas as minhas classes em que faço referência R.id.something, o Restá em vermelho e diz "não é possível resolver o símbolo R". Além disso, toda vez que existe R.layout.something, é sublinhado em vermelho e diz "não é possível resolver o método setContentView (?)". O projeto sempre é bom. É chato ver isso o tempo todo. Eu li muitas outras perguntas aqui sobre algo semelhante, mas a maioria envolvia a importação de projetos do Eclipse. Estou usando o que acredito ser a versão mais recente do Android Studio e o projeto foi criado com o Android Studio e funcionou sem problemas "não pode resolver R". Eu gostaria de saber o que causa isso, se alguém souber.

ez4nick
fonte
no passado, eu recebi erros de xml como: progressbar não pode ser convertido para android.widget.textview, e eu o corrigi alterando apenas o nome da visualização de texto. Eu realmente ainda não sei o que causou o erro, para começar.
ez4nick
Se você mudou o nome, talvez agora você esteja tentando usar uma referência de string que não exista em res / strings.xml?
Eyeball
2
Pesquisei muitas vezes antes de fazer essa pergunta e encontrei muitas perguntas semelhantes, incluindo a que você mencionou. Eu li a sugestão nessa pergunta e não há importação Android.R em nenhum dos meus arquivos java.
ez4nick
2
Hey pessoal, eu esqueci de fazer essa pergunta, uma vez que ela foi feita há muito tempo. Eu deveria ter aceitado minha própria resposta há um ano, que agora é o comentário acima disso. O problema era simplesmente que o estúdio android estava em um estágio tão inicial na época e, como novo desenvolvedor, eu nunca deveria estar usando. Tenha certeza de que tudo está funcionando bem agora e está. Se possível, cancele a exclusão da minha resposta original para que eu possa aceitá-la.
ez4nick
3
Não encontrar R não é o seu erro, é um erro causado por uma falha de compilação Corrija os outros erros e você deve estar bem.
precisa saber é o seguinte

Respostas:

720

Eu também tinha esse problema. Um simples 'gradlew clean' e 'gradlew build' fizeram o truque.


Clique em Build-> Clean Project e isso executará uma limpeza gradual.

Vipassana Vijayarangan
fonte
56
algumas vezes você também precisa reiniciar o android studio. ou pelo menos para mim.
Usuário
24
Para aqueles que convulsionam usando a linha de comando, clique em Build-> Clean Project e isso executará uma limpeza gradual. ;)
Concolato 31/03
22
Sem sorte ... A reconstrução da limpeza não está funcionando comigo
#
7
se limpar, reconstruir, invalidar caches-restart não resolver, vá para: import package.R;
Sudip Bhandari
2
Para mim, isso estava causando o problema: Incompatibilidade entre ApplicationId no gradle e nome do pacote no manifesto (e embora a importação automática tenha adicionado o endereço errado para o arquivo R). Eu recomendo este pequeno artigo para esclarecer a diferença entre os dois. blog.stylingandroid.com/package-name-vs-application-id
Tina
227

Nas versões mais recentes do Android Studio, pelo menos para mim, o seguinte funciona:

"Ferramentas" -> "Android" -> "Sincronizar projeto com arquivos Gradle"

No mais recente Android Studio 3.1.3 (julho de 2018), "Sincronizar projeto com arquivos Gradle" está disponível na barra de menus principal.

insira a descrição da imagem aqui

Tom C.
fonte
Qual foi a versão do Android Studio que você usou nessa época?
Joel Handwell
Não funciona para mim (Android Studio 0.8.14). Mas, o projeto Build> Clean funciona bem.
Phat H. VU
Ainda funciona no Android 1.2.1. Lembre-se de fazer isso mais de uma vez, se não funcionar pela primeira vez.
Noob
Esta é a única coisa que funcionou para mim. Tentei todas as outras soluções primeiro.
Mac
1
Em Android Estúdio 3.1.1, esta opção está em File -> Project sincronização com arquivos Gradle
Hrishikesh Kadam
155

Eu estava usando o gradle 3.3.0. Foi o principal culpado. Desperdiçou 6,50 horas da minha vida. O Gradle 3.2.1 removeu o erro.

classpath 'com.android.tools.build:gradle:3.2.1'

Problema resolvido após alterar a versão gradle. O histórico de detalhes pode ser encontrado aqui .

Tushar Monirul
fonte
9
Mais um feito incrível dos desenvolvedores de estúdio do Android. Revertendo para 3.2.1era realmente a única solução que funcionou para mim ...
Vucko 12/02/19
1
Surpreendentemente ainda é um problema 2 meses depois. A versão mais recente (3.3.2) não foi corrigida, 3.2.1.
JakeSteam 24/03/19
Em vez de voltar para o gradle, 3.2.1você também pode atualizar o Android Studio para a versão 3.3. Veja minha resposta aqui
arne.z
funcionou alterando 3.3.0 para 3.2.1, mas minha pergunta estava funcionando bem no 3.3.0. Acabei de refatorar e atualizar o arquivo xml e o arquivo gradle do manifest e atualizei o gradle. Posso saber o que pode ser a razão
insoftservice
25 horas de internet e parece que essa é a única solução que funciona. Obrigado android studio: (....
Nahabwe Edwin
108

Eu tenho um problema semelhante e aqui está o que eu fiz:

Projeto limpo e projeto de sincronização com Gradle,

insira a descrição da imagem aqui

verifique a versão do buildTools no meu sdk insira a descrição da imagem aqui

Do build gradle (módulo), altere minSdkVersion de 8 para 9

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Mas tudo isso não ajudou.

Finalmente encontrei a resposta (isso funcionou no meu caso)

Mude de build.gradle (módulo: app)

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

Ou

Selecionar arquivo | Alteração da estrutura do projeto Versão das ferramentas de compilação para 21.1.1

insira a descrição da imagem aqui

Mina Fawzy
fonte
Isso também trabalhou para mim, mudando constrói e criação de arquivos Gradle (módulo)
Samuele Bolognini
Obrigado, como sábio, esta foi a solução.
App Dev Guy
58
  1. Verifique seus arquivos xml.
  2. Projeto Limpo.

É isso.

Por exemplo, eu tinha uma entrada no meu strings.xml:

<string name="A">Some text</string>

E activity_main.xmleu usei essa entrada de string

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

Enquanto trabalhava com o projeto, eu apaguei isso

 <string name="A">Some text</string>

E, consequentemente, activity_main.xmltornou-se inválido. Como resultado: não é possível resolver R.

Portanto, verifique seus *.xmlarquivos e limpe o projeto.

Yuriy
fonte
Isso realmente salvou a minha vida [PLUS ONE]
GingerHead
Uma imagem ausente de um dos meus XMLs causou esse problema para mim. Coloque a imagem na pasta, limpa e R agora está feliz novamente.
Casey Murray
Acidentalmente, minha string foi definida duas vezes em strings.xml. O Studio não mostrou nada disso. X- (Obrigado pela sua resposta.
codingjeremy
Isso é para outros desenvolvedores que estão lendo. Essa abordagem por si só deve resolver o problema, como fez para mim.
Paramvir Singh Karwal
6
Por que não há comentários para sublinhar arquivos XML incorretos no IDE?
Fuhrmanator 21/09
53

Se você vir esse erro após mover arquivos ou diretórios java para outros locais, poderá garantir que o Android Studio ficou confuso. E adivinha? desfazer essas ações não resolve o problema.

Então você tenta uma limpeza, mas isso não funciona.

E reiniciar também não funciona.

Mas tente Arquivo -> Invalidar caches / reiniciar ... -> Invalidar e reiniciar

O Android Studio mantém informações sobre quais arquivos dependem de quais outros arquivos. E como a movimentação de arquivos não é implementada corretamente, a movimentação de arquivos causa erros. E isso não é tudo: os caches dessas dependências são usados ​​na tentativa de acelerar a compilação.

Isso significa que você não apenas precisa reiniciar, mas também precisa invalidar esses caches para restaurar (ou mais precisamente, reconstruir) a sanidade.

Scott Biggs
fonte
Não ajudou. Tentei limpar / reconstruir também. Ocorreu um erro depois que mudei o pacote java para outro pacote. Curiosamente, em um pacote, a classe R pode ser acessada, mas não pode ser acessada no pacote que eu mudei.
Rint
Nas versões mais recentes do Android Studio, Invalidar e Reiniciar agora são a seleção de menu padrão. Isso deve ajudar pelo menos algumas pessoas. (Pena que eles não corrigir todos os erros loucos que causam esse erro em primeiro lugar!)
Scott Biggs
1
Eu recebi esse erro depois de mover e renomear um projeto. Isso resolveu o problema do R depois de toda a limpeza e reinicialização não. Obrigado.
FrankKrumnow
2
Isso leva aproximadamente o mesmo tempo como a obtenção de uma xícara de café - que por sua vez pode ser usado para tomar um banho de café agradável com se ainda marcas de R em vermelho ...ヽ( 'ー`)ノ
ZooMagic
1
encontrei um gif para o meu comentário anterior -> tenor.com/view/…
ZooMagic 11/11/18
30

Eu acho que se você colocar seus arquivos de atividades em outra pasta que não a padrão. Você precisa importar o com.example.yourproject.R(este é o seu Rarquivo de projeto NÃO Android.R) para TODAS as atividades usando R. Por exemplo, no MainActivityarquivo, insira esta linha:

import com.example.yourproject.R;
ninjahoahong
fonte
1
Ah, e ainda haverá uma mensagem de erro antes de você criar. No entanto, basta pressionar build, o Android Studio irá gerar o arquivo R e a build deve ser bem-sucedida.
Ninjahoahong 12/03
e acho melhor que, após a correção, você limpe seu projeto e depois construa. ou pressione Shift + F9 para depurar com seu dispositivo ou emulador. Eu prefiro depurar no dispositivo real.
Ninjahoahong 12/03
essa é a melhor solução. Obrigado cara
Arundev
essa resposta foi a varinha mágica. Obrigado
leeCoder 23/04
28

Parece haver muitas causas para esse problema. Recentemente, adicionei uma atividade para testar chamada NewActivity. Isso criou um arquivo chamado res/menu/new.xmle gradle não gostou desse nome porque new é uma palavra reservada.

gradlew clean

ou

"Tools" -> "Android" -> "Sync Project with Gradle Files"

Definitivamente, essas são boas coisas para tentar, mas você pode ter outros problemas que precisa resolver antes de executar esses comandos.

chawkinsuf
fonte
obrigado trabalhou para mim também. Pequena pergunta - onde devo digitar o gradlew clean se quiser fazê-lo dessa maneira (fiz "Ferramentas" -> "Android" -> "Sincronizar projeto com arquivos Gradle")?
Sergii 02/09
Abra um terminal de comando, mude para o diretório do projeto e executar "./gradlew limpa"
chawkinsuf
Isso é o que foi para mim. Obrigado!
TinyGrasshopper
Como isso resolve o problema melhor do que o 'Rebuild Project'?
IgorGanapolsky 4/15/15
Sim, no meu caso, adicionei um arquivo png, chamado "import.png". Eu tive que mudar o nome, no meu caso "import_icon.png" e, em seguida, o projeto foi compilado.
mihai71
17

O arquivo R.java contém o link entre a página xml e java. "R não pode ser resolvido" surge apenas se houver um problema com alguns dos seus arquivos de recursos. Portanto, a maneira melhor e eficaz é excluir o último xml ou drawable concluído no arquivo res. e comece novamente a partir daí, de acordo com as normas de codificação do Android. Este é o único caminho. O caminho eficaz e correto.

Também use Git para rastreamento adequado de código. ..

Minto
fonte
No meu caso, não havia apenas problemas no XML, mas também no PNG (no drawable).
precisa saber é o seguinte
15

Seu código está apenas embaralhado. A resposta é bastante simples.

Basta ir em Build -> Clean Project .

Isso deve fazer o truque.

Verifique também sua versão do Android Studio.

Atualmente, estou usando o Android Studio 3.0.1 .

lloydyu24
fonte
14

Você atualizou suas ferramentas do SDK recentemente? Inicie o gerenciador do SDK do Android e verifique se você possui as ferramentas mais recentes do SDK, que agora estão separadas das ferramentas da plataforma. Eu tive esse mesmo problema quando atualizei meu gerente do SDK, o pacote de ferramentas de compilação do SDK não apareceu para instalação / atualização até que eu fechasse e reabrisse o gerenciador do SDK.

invertigo
fonte
Eu acredito que tudo está atualizado lá. isso realmente poderia causar um problema como esse?
Ez4nick
se você não tiver as novas ferramentas de compilação do SDK instaladas, sim.
Invertigo
12

Basta limpar o seu projeto e sincronizar o projeto com o arquivo Gradle.insira a descrição da imagem aqui

E o problema será resolvido.

Arunendra
fonte
Note-se que clicar com o botão direito do mouse em "app" e clicar no botão de sincronização no menu não alcança isso. Obrigado.
Mafro34
11

Eu tive isso com

  1. Uma letra maiúscula nos meus recursos desenháveis.
  2. Importe Android.R sendo adicionado pelo Android Studio (ou Eclipse)
  3. Erro no arquivo xml
Ryan Heitner
fonte
Eu tive o problema porque ocorreu um erro em um dos meus arquivos XML. Resolvido o problema, em seguida, fez umBuild->Clean Project
AjayCodes
11

Recentemente, tive esse problema e o clean / build etc. não o resolveu. Imaginei que tinha um problema em algum lugar, mas não sabia ao certo onde encontrá-lo (estava no manifesto, arquivos xml de recursos etc.?).

Quando algo está errado, você pode descobrir o que é fazendo uma análise de código.

No menu na parte superior, escolha:

Analisar -> Inspecionar código, digitalizar todo o projeto usando o perfil 'Padrão'.

Os resultados da sua inspeção conterão um elemento chamado 'Android'. Aqui você obterá uma lista de tudo o que está causando problemas em seus recursos e no arquivo de manifesto. Os erros abrirão os arquivos xml gerados da sua compilação, que mostrarão os erros em vermelho.

Meu problema exato foi causado porque eu estava usando arquivos de manifesto com base em sabor e copiei algumas permissões dentro da <application>marca no sabor por acidente.

Inspeção

ATUALIZAÇÃO: Eu tive um problema depois de onde o Android Studio ainda mostrava o erro após a correção, embora agora eu pudesse criar e executar perfeitamente perfeitamente enquanto o erro ainda estava lá. (Estou executando uma compilação de canário, portanto, por enquanto)

Matthew Cawley
fonte
Curiosamente, eu tive esse problema em apenas um arquivo e executei o processo "Inspecionar código" e ele se limpou (limpar e reconstruir não o corrigiu). Deve ter havido algo preso em Lint que somente isso poderia esclarecer. Obrigado!
rundavidrun
Obrigado por isso! Embora isso tenha encontrado muitos erros gerais, o que era esperado, a peça que derrubou todo o castelo foi um pequeno erro de sintaxe em um arquivo XML gerado pelo Asset Studio! Depois que resolvi isso, um Projeto Limpo me permitiu avançar.
Bink
10

Eu tive que importar meu Rpacote no estúdio android. Por exemplo:import com.example.<package name>.R

Pervy Sage
fonte
1
Eu já estive aqui antes de pensar. Obrigado novamente
Ohiovr
1
Isso funcionou para mim. Muito obrigado.
Aquarius_Girl
Isso aconteceu comigo depois que refatorei o nome do meu pacote, mas de alguma forma o estúdio android saiu do site import com.example.old-package-name.R, então tive que renomear a importação.
auspicious99
9

Esta é uma pergunta muito antiga, mas ainda acontece muito e não há uma resposta verdadeiramente abrangente aqui.

Eu já tive esse problema mais vezes do que gostaria de admitir. Isso pode ser causado por uma grande variedade de problemas que, principalmente, têm a ver com a estrutura do seu projeto que não corresponde ao esperado. Aqui está uma lista de todos os problemas que tive:

A importação do Eclipse para o Android Studio nem sempre funciona sem problemas, especialmente nas versões mais antigas do Android Studio. Verifique se você está usando a árvore de diretórios correta. Deve ser assim para um aplicativo moderadamente maduro:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

Pode não ser assim no seu IDE. Há uma lista suspensa acima da árvore de arquivos que exibe seus arquivos de maneiras diferentes e, no meu sistema, o padrão é o Android, que divide seus arquivos em tipos diferentes. É mais fácil corrigir esse tipo de problema daquele chamado Projeto, e ainda mais fácil diretamente do sistema de arquivos do seu sistema operacional, porque o Android Studio recolhe pastas que contêm apenas outra pasta em uma única linha.

Especialmente se você mudar o nome do seu aplicativo, verifique se a árvore de origem main / java / com / domain / AppName está atualizada. Verifique também se a tag do pacote no seu AndroidManifest.xml está correta.

Se houver erros nos arquivos Gradle ou no AndroidManifest.xml, isso impedirá o Android Studio de criar corretamente os arquivos de recursos. Os arquivos Gradle podem ser quebrados atualizando o Android Studio às vezes, especialmente a partir das versões anteriores à 1.0. Às vezes, isso ocorre porque ele deixa de oferecer suporte a versões mais antigas do plug-in Gradle, portanto, você precisa atualizar seus números de versão. Às vezes, pode ser difícil encontrar quais são as versões atuais. A partir de hoje, 17/07/15, meus aplicativos estão sendo compilados com.android.tools.build:gradle:1.2.3. Isso está no bloco de dependências no arquivo gradle mais externo,

Se o seu AndroidManifest referenciar um recurso ou atividade de drawable ou string inexistente, ele será interrompido e causará esse erro. Às vezes, se alguma coisa referenciar um recurso drawable ou string inexistente, você receberá esse erro.

Se você tiver um arquivo corrompido nos seus recursos ou um arquivo xml inválido, receberá esse erro.

Na minha experiência, às vezes o Android Studio apenas soluça sem motivo, e você precisa reiniciá-lo e / ou seu PC. Não sei por que, mas às vezes funciona.

Se você tiver dois recursos xml com o mesmo nome, em diretórios que não se substituem, poderá ter esse problema. Por exemplo, você pode ter o mesmo nome em drawable-mhdpi e drawable-xhdpi porque eles se substituem dependendo do dispositivo de destino, mas se você tiver o mesmo nome no layout e no menu, isso causará um problema. Renomeie ou exclua um dos arquivos.

Se apenas alguns recursos tiverem esse problema, é provável que esses recursos estejam no diretório errado.

Em um caso, tive que reinstalar completamente o Android Studio. Não sei o que estava errado, mas funcionou.

Em um caso, mudei meu projeto inteiro para um diretório diferente e reimportei-o como um novo projeto. Não sei o que estava errado, mas funcionou.

Arquivos XML com palavras reservadas para nomes podem causar esse problema. Renomeie ou exclua-os.

Existem algumas maneiras pelas quais o arquivo Gradle pode acabar fazendo referência a uma versão das ferramentas de compilação que você não instalou. Corrija isso alterando Gradle ou baixando as ferramentas de compilação apropriadas.

Finalmente, depois de corrigir o que está errado, você precisa limpar o seu projeto Gradle. Você pode fazer isso acessando o menu Build na parte superior e selecionando Clean Project.

TBridges42
fonte
9

Basta ir à lista de menus do Android Top. clique no menu Build , em Build, clique em Rebuild Project.

insira a descrição da imagem aqui

Gundu Bandgar
fonte
9

Eu enfrentei esse problema ao renomear manualmente a pasta de domínio do meu aplicativo. Para corrigir esse problema, tive que

  1. Defina a packageestrutura de pastas adequada de <manifest>in AndroidManifest.xml.
  2. Defina o novo local do pacote para android:namede <activity>in AndroidManifest.xml.
  3. Limpar cache por

Menu Arquivo -> invalidar caches / reiniciar ...

O problema desaparecerá assim que o estúdio Android reiniciar e criar o novo índice.

Sridhar
fonte
9

Eu tive o mesmo problema: Android Studio 3.2 O projeto é compilado e executado bem, mas estou recebendo os avisos "Não é possível resolver o símbolo" R "na tela

Será que não ajuda:

  • Construir-> Limpar Projeto
  • Construir-> Reconstruir Projeto
  • Arquivo-> invalidar caches / reiniciar

Ajuda:

ou

no build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

substituir com

   dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

ou

Atualize o Android Studio para 3.3

Alex Burov
fonte
Você salvou minha vida ! A atualização do android studio para 3.4 resolveu o problema para mim #
Artory
8

Eu tenho um caso especial para esse problema.

No meu projeto, tudo corre bem, ele pode ser compilado e compilado com êxito, mas no meu Android Studio IDE (e eu também tentei o Intelligent IDEA, eles estão na mesma situação) o arquivo R.java não pode ser bem resolvido e sempre será cair na linha vermelha.

Bem assim: insira a descrição da imagem aqui

Isso quase me deixou louco, não consigo suportar a cor de leitura quando estou programando.

Por fim, achei que esse problema complicado é causado pelo tamanho do arquivo da minha R.java. Meu projeto é muito grande, suporta muitos idiomas e vários tamanhos de tela. Existem tantos recursos que o tamanho do arquivo da minha R.java é de cerca de 2,5 milhões .

O tamanho máximo de um arquivo no Android Studio é de 2,5 milhões nas configurações padrão; portanto, arquivos maiores que esse limite não podem ser resolvidos corretamente. E você pode alterar as configurações padrão em "AndroidStudio-root / bin / idea.properties".

mude esta linha:

idea.max.intellisense.filesize=2500

para :

idea.max.intellisense.filesize=5000

Em seguida, reinicie o estúdio Android, a cor vermelha descartada, eu posso programar feliz novamente.

Fido Zhang
fonte
No Android 3.2, basta ajudar / Editar propriedades personalizadas
Beto
boa dica, mas não resolveu meu símbolo não pode resolver R
Aliton Oliveira 26/11/19
7

Compilar> Limpar Projeto

Isso funcionou para mim. Teve o mesmo problema algumas vezes, e isso parece corrigi-lo. A menos que você tenha alterado alguma coisa ou chamado de variável R. Esse problema geralmente acontece do nada, quando acontece comigo, então imagino que sejam apenas estúdios do Android em pânico. haha

Tenha uma boa e boa sorte com seus projetos.

S.Pedro
fonte
Obrigado. Também funcionou para mim. Eu substitui algumas imagens no drawable e recebi esse erro.
KCP
7

Fazer: Construir> Limpar Projeto

IMPORTANTE: verifique se você não possui nenhum erro após limpar o projeto no painel de mensagens (Alt + 0). Se você encontrar círculos vermelhos com ponto de exclamação, remova esses erros no seu código.

Esses erros estão principalmente relacionados a @ string / ou @ array /. Projeto limpo novamente e pronto!

Hassan Naqvi
fonte
7

Eu tive o mesmo problema, e isso acontece quando eu crio um novo projeto.

O que eu faço é:

  • verifique se há atualizações do SDK
  • atualizações do estúdio android,
  • reabra o projeto
  • abra o andoridmanifest.xml
  • apague um espaço entre um "_>" no android: label e salve.

Isso funciona para mim.

Elsanty
fonte
7

Eu tive dificuldade em consertar isso sozinho.

  • Verifique se não há erros nos arquivos layout.xml.
  • Vá para Build> Clean project

Funcionou para mim, espero que funcione para você também.

Oussama Essamadi
fonte
6

Eu tive o mesmo problema e, na maioria das vezes, é resolvido por

  • Sincronizar projeto com arquivos gradle
  • Fazendo Build -> Limpar Projeto
  • Fazendo arquivo -> invalidar caches

Mas desta vez o erro persistiu mesmo depois de fazer todas essas coisas e, finalmente, encontrei o culpado.

O problema estava em um arquivo xml , no qual eu forneci um valor de sequência comum para um tipo de recurso de identificação emandroid:id vez de um .

ERRO

android:id="username"

CORREÇÃO

android:id="@id/username"

Desarrumar coisas relacionadas a resourcesarquivos xml é um dos principais motivos desse erro. Cuidado com o fato de que ele pode não ser mostrado como um erro no arquivo de layout xml.

NOTA

Na maioria dos casos, o compilador mostra a fonte do erro na mensagem. Tente verificar antes de tentar outras soluções

Siva Prakash
fonte
6

`Eu tive o mesmo problema e resolveu:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`
Bapusaheb Shinde
fonte
Essa é uma boa resposta, embora eu só precisasse colocar '//' no arquivo gradle e selecionar ressincronizar. Todos os AS reconheceram a importação e me permitiram executar o aplicativo.
Val
5

Essa notação parece funcionar bem.

android:id="@+id/viewID"

O painel de design do Android Studio parece não funcionar bem.

Tevin J
fonte
5

Mesmo problema. Iniciado quando adicionei algumas imagens na minha pasta de desenho e tentei acessá-las. Também as imagens adicionadas estavam tendo a extensão com letras maiúsculas. Isso parece ter travado a compilação, pois mesmo que eu os renomeasse, a mensagem era a mesma e R estava inacessível. O que eu fiz é que, no arquivo .iml, procurei o excludeFolder e os removi (como abaixo):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

Depois disso, reconstruí o projeto e R reapareceu magicamente.

user1137313
fonte
5

Existem muitas causas para esse erro.

  1. Às vezes, ocorre a substituição de um arquivo de imagem mantendo o mesmo nome.
  2. Suponha que você excluiu um item do seu layout .xml, digamos a, <Button/>mas ele ainda está declarado em qualquer Atividade ou Fragmento .java.
  3. Muito mais.

A melhor maneira de rastrear o erro é Reconstruí-lo bastante limpo ou sincronizar, fazendo algum erro intencional.

Se isso não resolver o problema, deve haver algum erro de falha ou tempo de execução, ou ocorreu um erro devido ao uso inadequado dos recursos. Pode ser um arquivo java ou xml no seu código ou design, o que está forçando o gradle a parar porque (R ) O arquivo esource não pode indexar seus recursos corretamente e você deve admitir isso.

Se o seu projeto foi executado antes de você fazer as alterações, comente as alterações feitas e tente reconstruí-lo.

Certamente funcionará, pois não haverá alterações.

Para rastrear o erro exato, verifique as alterações dividindo-as em um módulo menor.

Por exemplo - Se você estiver tornando uma lista visível com um clique no botão e inserindo valores de lista no adaptador, verifique primeiro se é possível torná-la visível ou não e, em seguida, verifique se há erros no adaptador.

Sourav Roy
fonte
4

Foi uma grande dor de cabeça para mim. No meu caso, o erro apareceu após a configuração do "Google Play Services" no Android Studio (instalação + configuração do build.gradle). Por sua vez, exige minsdk> 7, mas o erro não é muito claro (na verdade, uma reclamação sobre isso aparece apenas como "informações"). De qualquer forma .. ao alterar o minsdk para 8 no arquivo de manifesto e no arquivo build.gradle e na reconstrução do projeto, o erro desapareceu.

Portanto, um conselho geral sobre isso, se é que posso generalizar - você provavelmente tem algum problema no seu arquivo de manifesto ou em algum outro arquivo de configuração que está impedindo uma compilação adequada. Tente olhar muito atentamente para o relatório de erros, até mesmo as mensagens intituladas "info" para qualquer sugestão sobre o que pode ser ...

ayal gelles
fonte