Compilatore in linea di Android Studio che mostra errori rossi, ma la compilazione con gradle funziona bene


147

Ho impostato il mio progetto in Android Studio per utilizzare la libreria Square Wire , come da questa domanda .

Build-> Compile Projectfunziona benissimo.

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

Tuttavia, se apro uno dei miei file Protocol Buffer generati, il pacchetto Square non viene riconosciuto.

Errori di compilazione in linea di Android Studio

Un altro sintomo è che i metodi ereditati dalla Messageclasse Square vengono visualizzati come errori di compilazione "Impossibile risolvere il metodo" nell'editor, anche se vengono compilati ed eseguiti correttamente.

Errore di compilazione su una riga per Android Studio

Devo fare qualcosa di più che aggiungere semplicemente la dipendenza build.gradleper il mio modulo nel mio progetto?


Ho avuto un problema simile con i miei librerie (non quelli esterni), vedere come riesco a risolvere questo problema qui: stackoverflow.com/a/50569818/373033
nah0y

Risposte:


132

La seguente procedura aiuta

  1. Chiudi il progetto e nella cartella del progetto elimina project/.idea
  2. Elimina ~/.gradlecartella.

Apri di nuovo il progetto. Tutto dovrebbe essere risolto.


1
Trascorrere ore su questo problema. Grazie. Il mio errore è stato che ho appena eliminato .gradle e non .idea
M il

2
Questo ha funzionato per me eliminando .gradle e .idea e quindi facendo invalidare e riavviare risolto il mio problema. e quindi sincronizzare con Gradle.
Pankaj,

Ho spostato la .gradlecartella da C:\Users\Hasnain\.gradleun'altra directory. Successivamente, lo studio Android mostra errori su ciascuna classe. Quindi seguo i passaggi sopra indicati, quindi il problema è stato risolto.
hasnain_ahmad,

38
L'eliminazione di tutto nella .ideadirectory è una cattiva idea, in quanto potrebbe ripristinare tutte le impostazioni del progetto. Basta rimuovere .idea/librariese .idea/cachesfinalmente risolto il problema per me dopo aver provato tutte le altre soluzioni.
fdermishin,

ha funzionato molto bene in AS 3.1.3. Non avevo nemmeno bisogno di invalidare le cache. Speriamo che AS costruirà più velocemente ora!
Someone Somewhere,

111

Grazie a free3dom per avermi portato sulla strada giusta qui.

Diagnosi

L' Sync Project with Gradle Filesopzione in Android Studio sembra mantenere le Project Structurelibrerie aggiornate.

sincronizzazione graduale

Tuttavia, nel mio caso ci sono stati alcuni errori:

errori trovati

L'espansione del collegamento (non molto ovvio) ha mostrato i dettagli. La mia libreria di wire-runtime veniva visualizzata in una posizione errata:

librerie

Sembrava una sbronza dalla mia configurazione originale in cui avevo importato il JAR in una cartella libs.

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

Successivamente l'ho modificato per essere importato direttamente da Maven Central ( come qui ) e sembra che la vecchia impostazione non sia mai stata sovrascritta con quella nuova.

La correzione

La correzione consiste nell'eliminare la dipendenza della libreria da Project Structure schermo e poi di Sync Project with Gradle Filesnuovo.

Più dettaglio

Puoi anche vedere quale percorso viene utilizzato per la risorsa aprendo .idea/libraries/wire_runtime_1_2_0.xmldirettamente.

Il mio rotto era:

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

Dopo aver eliminato e aggiunto nuovamente la libreria, è stato modificato root urlin:

      <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!/" />

Aggiornare

Android Studio v0.4.4 apparentemente corregge altri bug che presentano gli stessi sintomi, quindi se hai una versione precedente potresti voler aggiornare.


3
Grazie Dan J. Prima di provare la tua soluzione, ho provato questa più semplice (secondo me) e ha funzionato per me: apri il pannello Gradle sul lato destro dell'editor (sopra "Maven Projects" e "Commander") e facendo clic sul pulsante Aggiorna. Ciò ha aggiornato le impostazioni del modulo. Crediti a @Matteo Danieli (vedi: stackoverflow.com/a/17043001 )
almighty972

1
ho dovuto eliminare le dipendenze locali del vaso, che mi hanno risolto, grazie per l'ispirazione
jhegedus,

Ho appena cliccato su "Sincronizza progetto con file Gradle" e ora tutto va bene! Grazie mille! Ha salvato la mia giornata ahah
Jorge Gabriel Siqueira il

Non ha funzionato per me. Ma cancellare .gradle e .idea ha funzionato
Golnar,

Oggi lo stesso pulsante è mostrato come un'icona di elefante con una freccia in giù.
tm

87

Soluzione semplice

Passa attraverso il link e ha funzionato per me.

  1. Scegli l' Fileopzione dal menu sul lato superiore sinistro di Android Studio.
  2. Seleziona l'opzione: Invalidate Cache/RestartSi aprirà una finestra di dialogo.
  3. Fai clic sul primo pulsante con l'opzione: Invalidate and Restart
  4. Chiuderà Android Studio e lo riavvierà. Inoltre, inizierà a reindicizzare il progetto.

Ha risolto il mio problema

Vai a File > Cache / Riavvio non validi > Invalida e riavvia

Fonte qui per YouTube


Questo ha funzionato per me; Android Studio mostrava errori dappertutto dopo che ho provato a programmare in un luogo con scarsa ricezione wifi. (!!!) Mi sono quindi assicurato di avere una buona connessione wifi e ricostruito, tuttavia, gli errori sono rimasti. Anche un clean / build non lo ha risolto. Le cache invalide lo hanno riparato.
Someone Somewhere,

Utilizzando Android Studio 2.1.3 su Fedora. Questa soluzione ha funzionato per me. Aggiunti gli strumenti libgdx e l'importazione ha avuto un errore ma è stata compilata bene. La chiusura e la riapertura non hanno funzionato, ma l'invalidazione e il riavvio hanno funzionato correttamente.
JoeMoe1984,

1
Ha funzionato in AS 3.1.4! Penso che questo di tutti i suggerimenti sia il modo giusto di gestirlo. È tramite il comando di menu di Android Studio. È decisamente molto meglio che eseguire manualmente il ripristino nell'ambiente file.
Jan Bergström,

Ha funzionato per me il 3.5.1
Neela il

44

1) Fai clic sull'icona Gradle (lato destro su Android Studio)

inserisci qui la descrizione dell'immagine

2) Fare clic sul pulsante di aggiornamento e attendere la risoluzione del problema: D

inserisci qui la descrizione dell'immagine


Su Android Studio 3.1 +, vai su File> Cache non valida / Riavvia> Non valida e riavvia.
DroidDev,

17

Avevo ancora lo stesso problema con Android Studio v3.2.1 costantemente e risolto il problema semplicemente rimuovendo queste due sottocartelle della .ideacartella (non è necessario eliminare l'intero.idea cartella) mentre una sincronizzazione graduale non funzionava:

  • ./idea/caches
  • ./idea/libraries

Nella maggior parte dei casi risolve i miei problemi. In alcuni altri, potrebbe essere necessario "Invalidare la cache e riavviare" o modificare anche la versione Gradle.
GoRoS

12

Per me l'eliminazione della cartella .gradle e .idea del progetto ha risolto il problema.


11

Fallo sul tuo studio Android:

File -> Cache non valide / Riavvia -> Invalida e riavvia

Questo ha funzionato per me. Non è necessario cancellare la cartella ./gradle o ./idea


9

La mia correzione hacky per questo -

  1. Apri il tuo build.gradlefile
  2. Ritaglia tutto dentro dependencies{}
  3. Incolla nel blocco note per una conservazione temporanea super sicura
  4. Scegli "Sincronizza ora" nel build.gradlefile
  5. Attendi che la sincronizzazione fallisca
  6. Incolla nuovamente le tue dipendenze
  7. 'Sincronizza ora' di nuovo

Ho provato molte soluzioni e questa è stata l'unica soluzione per me.


7

Ho avuto questo problema dopo l'aggiornamento ad Android Studio 3.1. Ho risolto il problema aggiornando tutti i componenti che utilizzo. Quindi ho modificato le seguenti voci nel mio build.gradle (app):

  1. Aggiorna SDK (da "compileSdkVersion 25" a "compileSdkVersion 26" o forse superiore quando leggi questa nota):

    // compileSdkVersion 25

    compileSdkVersion 26

    Commento: questa modifica ha costretto il programma a scaricare / installare il nuovo SDK durante la sincronizzazione successiva.

  2. Aggiorna appcompat-v7:

    // implementazione 'com.android.support:appcompat-v7:25.4.0'

    implementazione 'com.android.support:appcompat-v7:26.1.0'

  3. Aggiorna firebase:

    // implementazione "com.google.firebase: firebase-ads: 11.4.2"

    implementazione "com.google.firebase: firebase-core: 12.0.1"

    implementazione "com.google.firebase: firebase-ads: 12.0.1"

  4. In PROJECT build.gradle, aggiorna google-services:

    // classpath 'com.google.gms: google-services: 3.1.0'

    percorso di classe "com.google.gms: google-services: 3.2.0"

  5. Aggiornamento gradle (da 4.4 a 4.6). Da gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

Dopo queste modifiche, ripulisci il progetto, invalida la cache / riavvia, rimuovi il contenuto .idea / libraries e risincronizza (non sono sicuro dell'ordine ma TUTTE queste attività hanno risolto il problema per me).


1
che dire di altri componenti che non hanno una versione più recente?
Amir Dadgari,

Non lo so. Questi sono i componenti che avevo nel mio progetto.
Pablo Alfonso,

Ciao Amir, secondo il sito ufficiale, il grado 4.4 è l'ultimo disponibile (a partire da marzo 2018). Dove hai trovato Gradle 4.6?
Pablo Alfonso,

Ho trovato la posizione del Gradle 4.6. Ho aggiornato la risposta. Grazie.
Pablo Alfonso,

4
rimuovere il contenuto .idea / libraries, funziona per me. grazie mille
Tram Nguyen,

7

L'eliminazione della cartella delle librerie in .idea ha risolto il problema per me. Si trova nelle librerie root / .idea / del progetto.

Sto usando Android Studio 3.1.4


2
Questo ha funzionato ma ho dovuto invalidare e riavviare pure.
Dan Anderson,

5

Di seguito i passaggi quando il Progetto viene compilato correttamente ma con classi irrisolte (l'utilizzo di tutte le classi sarà di colore rosso in tutti i file)

Passaggio 1. Eliminare il file .gradle

Passaggio 2. Elimina il file .idea

Passaggio 3. Apri la nuova finestra di Android Studio con qualche altro progetto Android sul tuo sistema e chiudi il tuo Progetto con errori

Passaggio 3. Ora apri / importa nuovamente il progetto dalla barra degli strumenti di studio Android Studio -> File -> Apri

Nota: ora quando si importa il progetto le nuove cartelle .gradle e .idea verranno generate automaticamente dal compilatore con dipendenze risolte.


2

Se tutte le risposte sopra non funzionano per te. Prova ad aggiornare le tue dipendenze all'ultima versione. Ha funzionato per me.


2

Ho provato la maggior parte delle correzioni sopra e ciò che ha funzionato in realtà è stato l'eliminazione di tutte le cartelle di configurazione di .AndroidStudio e il riavvio di Android Studio.

  • Posizione: C: \ Users \ nomeutente

2

Ho trovato un modo semplice

  • Apri il livello dell'app build.gradle
  • Rimuovi la dipendenza che mostra errore e sincronizzazione.
  • Aggiungi di nuovo dipendenza e sincronizzazione.

Errore andato!

Prima

Prima

Dopo

Dopo



2

Sembra che ognuno usi un approccio diverso per aggirare questi problemi. Ne suggerirò un altro che ritengo sia un po 'meno invasivo degli altri. Quando introdurrò le modifiche da una libreria aar che includo, aprirò il file "settings.gradle" per il progetto.

Quindi ritaglia il modulo principale del progetto dall'elenco dei progetti:

include ':mainproj',

e quindi sincronizzare il progetto. Quindi incollalo nuovamente e sincronizza nuovamente il tuo progetto. Credo che questo sia lo stesso di alcuni dei passaggi di eliminazione manuale, ma questo ti consente di farlo dall'IDE un po 'più veloce e meno doloroso.


Funziona bene per me. Grazie! @Jay Snayder
Shivam,

2

Sono risolto con il metodo seguente

Metodo 1

File> Cache non valida / Riavvia> Non valida e riavvia

Metodo 2

  • Se stai riscontrando questo errore solo per un determinato progetto, quindi esegui questa operazione
   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 stai riscontrando questo errore per tutti i progetti, allora fallo
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5

1

Queste soluzioni non mi hanno aiutato con lo stesso problema in Android Studio 0.5.8.

Ho descritto la mia risposta alla stessa domanda (immagino): https://stackoverflow.com/a/23891829/534698 Ho appena eliminato la directory ~ / .AndroidStudioPreview (in Ubuntu). Ho perso tutte le mie impostazioni di Android Studio ma funziona.


questa è l'unica cosa che ha funzionato per me. Android Studio 1.0.2
Bobby Hargett il

1

Nel mio caso, per qualche motivo, la versione del plug-in Android non è stata impostata. Ho provato a svuotare la cache e rimuovere anche .gradle e .idea, ma non ha funzionato e dopo aver vagato finalmente per ore, ho trovato questo.

File> Struttura del progetto


0

Ho avuto un problema simile prima, invalidare la cache e riavviare non lo ha risolto. Ho appena fatto un Gradle Sync e tutto ha funzionato bene.


0

Risolto il problema pulendo il progetto Build->Clean Project


0

Per me, rimando un barattolo in una libreria di moduli. Non è in grado di risolvere il simbolo nel vaso. Quindi trovo la soluzione per la mia situazione. Usa il providedmodo.

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


0

Ho risolto lo stesso problema usando i seguenti passaggi:

  1. aggiorna la versione della libreria in gradi a qualsiasi numero casuale, ad esempio: lib_1.0.0 -> lib_1.0.0.0

  2. sincronizzazione graduale

  3. la sincronizzazione mostra un errore

  4. ripristina la modifica della versione lib_1.0.0.0 -> lib_1.0.0

  5. sincronizzazione graduale

Apri il file java con le importazioni per vedere l'errore cancellato.


0

Nessuna delle soluzioni ha funzionato per me ... Ho fatto ricorso a disinstallare Java dal mio computer, eseguendo Android Studio per assicurarmi che rilevasse la disinstallazione e quindi l'installazione di nuovo.

Se si sceglie di procedere in questo modo, provare a modificare il percorso jdk e impostare il nuovo percorso nella struttura del progetto. Se non funziona, vai avanti e disinstalla java .


0

Ho solo fatto un progetto pulito e ricostruito un progetto prima di riavviare Android Studio, risolve il mio problema. Forse Android Studio in realtà non aggiorna i riferimenti nell'interfaccia

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.