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?


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.


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.


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


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


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

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.


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


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.


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


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


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.


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.


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

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



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.


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

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.


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


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.


0

Resolvido o problema limpando o projeto Build->Clean Project


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


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.


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 .


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.