Compilador embutido do Android Studio mostrando erros vermelhos, mas a compilação com gradle funciona bem

147

Configurei meu projeto no Android Studio para usar a biblioteca da Square Wire , conforme esta pergunta .

Build-> Compile Projectfunciona bem.

2:03:10 PM Compilation completed successfully in 31 sec

No entanto, se eu abrir um dos meus arquivos de Buffer de Protocolo gerados, o pacote Square não será reconhecido.

Erros de compilação em linha do Android Studio

Outro sintoma é que os métodos herdados da Messageclasse Square estão sendo mostrados como "Não é possível resolver o método" erros de compilação no editor, mesmo que eles criem e executem bem.

Erro de compilação de linha única do Android Studio

Preciso fazer algo mais do que apenas adicionar a dependência build.gradledo meu módulo no meu projeto?

Dan J
fonte
Eu tive um problema semelhante usando minhas bibliotecas (e não os externos), ver como eu conseguir resolver isso aqui: stackoverflow.com/a/50569818/373033
nah0y

Respostas:

132

Os seguintes passos ajudam

  1. Feche o seu projeto e, na pasta do projeto, exclua project/.idea
  2. Excluir ~/.gradlepasta

Abra o projeto novamente. Tudo deve ser resolvido.

Bioz Nguyen
fonte
1
Passar horas com esse problema. Obrigado. Meu erro foi que eu apenas apaguei .gradle e não .idea
M em
2
Isso funcionou para mim, excluindo .gradle e .idea e, em seguida, invalidar e reiniciar resolveu meu problema. e depois sincronize com o gradle.
Pankaj
Mudei a .gradlepasta de C:\Users\Hasnain\.gradlepara outro diretório. Posteriormente, o estúdio android mostra erro em cada classe. Então eu sigo as etapas acima mencionadas, então o problema foi resolvido.
Hasnain_ahmad 10/0518
38
Excluir tudo no .ideadiretório é uma má ideia, pois pode redefinir todas as configurações do projeto. Apenas removendo .idea/librariese.idea/caches finalmente resolvi o problema para mim depois de tentar todas as outras soluções.
Fdermishin 17/05/19
funcionou muito bem no AS 3.1.3. Eu nem precisava invalidar caches. Vamos torcer para que o AS construa mais rápido agora!
Alguém em algum lugar
111

Graças ao free3dom por me colocar no caminho certo aqui.

Diagnóstico

A Sync Project with Gradle Filesopção no Android Studio parece manter as Project Structurebibliotecas atualizadas.

sincronização gradle

No entanto, no meu caso, houve alguns erros:

erros encontrados

A expansão do link (não muito óbvio) mostrou os detalhes. Minha biblioteca de wire-runtime estava sendo exibida em um local incorreto:

bibliotecas

Parecia uma ressaca da minha configuração original, onde eu havia importado o JAR para uma pasta libs.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Posteriormente, mudei para ser importado diretamente do Maven Central ( conforme aqui ), e parece que a configuração antiga nunca foi substituída pela nova.

O conserto

A correção é excluir a dependência da biblioteca da Project Structuretela e, em seguida, Sync Project with Gradle Filesnovamente.

Mais detalhes

Você também pode ver qual caminho está sendo usado para o recurso, abrindo o .idea/libraries/wire_runtime_1_2_0.xmldiretamente.

Meu partido foi:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

Após excluir e adicionar novamente a biblioteca, mudou root urlpara:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

Atualizar

O Android Studio v0.4.4 aparentemente corrige outros bugs com os mesmos sintomas; portanto, se você tiver uma versão mais antiga, poderá atualizar.

Dan J
fonte
3
Obrigado Dan J. Antes de tentar sua solução, tentei esta mais fácil (de acordo com mim) e funcionou para mim: abra o painel Gradle no lado direito do editor (acima de "Maven Projects" e "Commander") e clicando no botão atualizar. Isso atualizou as configurações do módulo. Créditos para @Matteo Danieli (consulte: stackoverflow.com/a/17043001 )
almighty972
1
necessário para eliminar dependências jar locais, que resolvem isso por mim, obrigado pela inspiração
jhegedus
Acabei de clicar em "Sincronizar projeto com arquivos Gradle" e está tudo bem agora! Muito obrigado! Você salvou meu dia haha
Jorge Gabriel Siqueira
Não funcionou para mim. Mas excluindo .gradle e .idea fez trabalho
Golnar
Atualmente, o mesmo botão é mostrado como um ícone de elefante com uma seta para baixo.
tm
87

Solução Simples

Passe o link e funcionou para mim.

  1. Escolha a Fileopção no menu no lado superior esquerdo do android studio.
  2. Selecione a opção: Invalidate Cache/RestartEle abrirá uma caixa de diálogo.
  3. Clique no primeiro botão com a opção: Invalidate and Restart
  4. Ele fechará o Android Studio e o reiniciará. Além disso, ele começará a indexar novamente o projeto.

Resolveu o meu problema

Vá para Arquivo > Invalidar cache / reiniciar > Invalidar e reiniciar

Fonte aqui para o youtube

Manmohan Soni
fonte
Isso funcionou para mim; O Android Studio estava mostrando erros em todos os lugares depois que tentei fazer alguma programação em um local com baixa recepção wifi. (!!!) Em seguida, verifiquei se tinha uma boa conexão wifi e reconstruí, no entanto, os erros permaneciam. Mesmo uma limpeza / construção não a resolveu. Caches de invalidação corrigidos.
Alguém em algum lugar
Usando o Android Studio 2.1.3 no Fedora. Esta solução funcionou para mim. Adicionadas as ferramentas libgdx e a importação teve um erro, mas ele foi compilado. Fechar e reabrir não funcionou, mas a invalidação e a reinicialização funcionaram bem.
21817 JoeMoe1984 6:17
1
Trabalhou no AS 3.1.4! Eu acho que todas essas sugestões são a maneira certa de lidar com isso. É por comando de menu do Android Studio. Definitivamente, é muito melhor do que redefinir manualmente no ambiente de arquivos.
Jan Bergström
Trabalhou para mim em 3.5.1
Neela
44

1) Clique no ícone do gradle (lado direito no android studio)

insira a descrição da imagem aqui

2) Clique no botão atualizar e aguarde a solução do problema: D

insira a descrição da imagem aqui

DroidDev
fonte
No Android Studio 3.1 +, acesse Arquivo> Invalidar cache / reiniciar> Invalidar e reiniciar.
DroidDev
17

Eu ainda estava tendo o mesmo problema com o Android Studio v3.2.1 constantemente e resolvi o problema removendo essas duas subpastas da .ideapasta (não é necessário excluir a .ideapasta inteira ) enquanto uma sincronização gradle não funcionava:

  • ./idea/caches
  • ./idea/libraries
GoRoS
fonte
Na maioria dos casos, resolve meus problemas. Em alguns outros, pode ser necessário "Invalidar cache e reiniciar" ou também alterar a versão Gradle.
GoRoS
12

Para mim, excluir a pasta .gradle e .idea do projeto resolveu o problema.

kvadityaaz
fonte
11

Faça isso no seu estúdio Android:

Arquivo -> Invalidar caches / Reiniciar -> Invalidar e reiniciar

Isso funcionou para mim. Não é necessário limpar a pasta ./gradle ou ./idea

Arun Yogeshwaran
fonte
9

Minha correção hacky para isso -

  1. Abra seu build.gradlearquivo
  2. Cortar tudo dentro dependencies{}
  3. Cole no bloco de notas para manter temporariamente super seguro
  4. Escolha 'Sincronizar agora' no build.gradlearquivo
  5. Aguarde a sincronização falhar
  6. Cole suas dependências de volta
  7. 'Sincronizar agora' novamente

Tentei muitas soluções e essa foi a única solução para mim.

jnutttzzz
fonte
7

Eu tive esse problema depois de atualizar para o Android Studio 3.1. Resolvi o problema atualizando todos os componentes que utilizo. Então, alterei as seguintes entradas no meu build.gradle (app):

  1. Atualize o SDK (de "compileSdkVersion 25" para "compileSdkVersion 26" ou talvez superior ao ler esta nota):

    // compileSdkVersion 25

    compileSdkVersion 26

    Comentário: Essa alteração forçou o programa a baixar / instalar o novo sdk durante a próxima sincronização.

  2. Atualize appcompat-v7:

    // implementação 'com.android.support:appcompat-v7:25.4.0'

    implementação 'com.android.support:appcompat-v7:26.1.0'

  3. Atualizar firebase:

    // implementação 'com.google.firebase: firebase-ads: 11.4.2'

    implementação 'com.google.firebase: firebase-core: 12.0.1'

    implementação 'com.google.firebase: firebase-ads: 12.0.1'

  4. No PROJETO build.gradle, atualize o google-services:

    // caminho da classe 'com.google.gms: google-services: 3.1.0'

    caminho de classe 'com.google.gms: google-services: 3.2.0'

  5. Atualizar gradle (de 4.4 para 4.6). De gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

Após essas alterações, limpe o projeto, invalide o cache / reinicie, remova o conteúdo .idea / libraries e ressincronize (não tenho certeza sobre o pedido, mas TODAS essas atividades resolveram o problema para mim).

Pablo Alfonso
fonte
1
e quanto a outros componentes que não possuem uma versão mais recente?
Amir Dadgari
Eu não sei. Esses são os componentes que eu tinha no meu projeto.
Pablo Alfonso
Olá Amir, de acordo com o site oficial, o gradle 4.4 é o mais recente disponível (a partir de março de 2018). Onde você encontrou o Gradle 4.6?
Pablo Alfonso
Encontrei localização do Gradle 4.6. Eu atualizei a resposta. Obrigado.
Pablo Alfonso
4
remover o conteúdo .idea / libraries, funciona para mim. thanks a lot
Eléctrico Nguyen
7

A exclusão da pasta de bibliotecas em .idea resolveu o problema para mim. Ele está localizado na raiz / .idea / libraries do projeto.

Estou usando o Android Studio 3.1.4

Kamen Stoykov
fonte
2
Isso funcionou, mas eu tive que invalidar e reiniciar também.
Dan Anderson
5

Etapas abaixo, quando o projeto é compilado com êxito, mas com classes não resolvidas (o uso de todas as classes será em vermelho em todos os arquivos)

Etapa 1. Exclua o arquivo .gradle

Etapa 2. Exclua o arquivo .idea

Etapa 3. Abra a nova janela do Android studio com outro projeto android no seu sistema e feche o seu projeto com erro

Etapa 3 . Agora abra / importe o projeto mais uma vez da barra de ferramentas do estúdio Studio Android -> Arquivo -> Abrir

Nota: Agora, quando você importa o projeto, as novas pastas .gradle e .idea serão geradas automaticamente com dependências resolvidas pelo compilador.

Sumith.Pattar
fonte
2

Se todas as respostas acima não funcionarem para você. Apenas tente atualizar suas dependências para a versão mais recente. Funcionou para mim.

Cuong Nguyen
fonte
2

Tentei a maioria das correções acima e o que realmente funcionou foi excluir todas as pastas de configuração .AndroidStudio e reiniciar o Android Studio.

  • Local: C: \ Users \ your.username
DIEGO FEDER
fonte
2

Eu achei fácil

  • Nível de aplicativo aberto build.gradle
  • Remova a dependência que está mostrando erro e sincronização.
  • Adicione novamente dependência e sincronização.

Erro ido!

Antes

Antes

Depois de

Depois de

Khemraj
fonte
2

A exclusão de .idea/cachese .idea/librariesdeve resolver todos os erros.

Karan_powered_by_RedBull
fonte
2

Parece que todo mundo usa uma abordagem diferente para contornar esses problemas. Vou sugerir outro que considero um pouco menos invasivo que os outros. Quando introduzo alterações de uma biblioteca aar que incluo, vou abrir o arquivo "settings.gradle" para o projeto.

Em seguida, recorte o módulo principal do projeto da lista de projetos:

include ':mainproj',

e depois sincronize seu projeto. Em seguida, cole-o novamente e sincronize novamente o seu projeto. Eu acredito que isso é o mesmo que algumas das etapas de exclusão manual, mas isso permite que você faça isso a partir do IDE um pouco mais rápido e menos doloroso.

Jay Snayder
fonte
Funciona bem para mim. Obrigado! @Jay Snayder
Shivam
2

Estou corrigido pelo método abaixo

Método 1

Arquivo> Invalidar cache / reiniciar> Invalidar e reiniciar

Método 2

  • Se você estiver enfrentando esse erro apenas para um projeto específico, faça isso
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • Se você estiver enfrentando esse erro em todos os projetos, faça isso
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5
Dineshkumar Niet
fonte
1

Essas soluções não me ajudaram com o mesmo problema no Android Studio 0.5.8.

Eu descrevi minha resposta para a mesma pergunta (eu acho): https://stackoverflow.com/a/23891829/534698 Acabei de excluir o diretório ~ / .AndroidStudioPreview (no Ubuntu). Perdi todas as minhas configurações do Android Studio, mas funciona.

DmitryDzz
fonte
essa é a única coisa que funcionou para mim. Android Studio 1.0.2
Bobby Hargett
1

No meu caso, por algum motivo, a versão do plug-in do Android não estava definida. Tentei limpar o cache e remover .gradle e .idea também, mas não deu certo e, depois de finalmente vagar por horas, achei isso.

Arquivo> Estrutura do Projeto

Jainam Jhaveri
fonte
0

Eu tive um problema semelhante antes, invalidar o cache e reiniciar não o resolveu. Acabei de fazer um Gradle Sync e tudo funcionou bem.

Mina Samy
fonte
0

Resolvido o problema limpando o projeto Build->Clean Project

Ganesh P
fonte
0

Para mim, refiro um jar em uma biblioteca de módulos. Não pode resolver o símbolo no frasco. Então, eu acho a solução para a minha situação. Use o providedcaminho.

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')
Victor Choy
fonte
0

Eu resolvi o mesmo problema usando as seguintes etapas:

  1. atualize a versão da biblioteca em gradle para qualquer número aleatório, por exemplo: lib_1.0.0 -> lib_1.0.0.0

  2. sincronização gradle

  3. sincronização mostra erro

  4. reverter a alteração de versão lib_1.0.0.0 -> lib_1.0.0

  5. sincronização gradle

Abra o arquivo java com importações para ver o erro resolvido.

Deepak PK
fonte
0

Nenhuma das soluções funcionou para mim .. Eu recorri à desinstalação do java do meu computador, executando o android studio para garantir que ele detectasse a desinstalação e depois a instalasse novamente.

Se você optar por seguir esse caminho, tente alterar o caminho do jdk e definir o novo caminho na estrutura do projeto. Se isso não funcionar, vá em frente e desinstale o java .

Kai Lean
fonte
0

Eu só fiz um Projeto Limpo e Reconstruo o Projeto antes de reiniciar o Android Studio, ele resolve o meu problema. Talvez o Android Studio realmente não atualize referências na interface

Abner Hernandez
fonte