Android Studio Inline-Compiler mit roten Fehlern, aber die Kompilierung mit Gradle funktioniert einwandfrei

146

Ich habe mein Projekt in Android Studio so eingerichtet, dass es die Square Wire-Bibliothek gemäß dieser Frage verwendet .

Build-> Compile Projectfunktioniert gut.

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

Wenn ich jedoch eine meiner generierten Protokollpufferdateien öffne, wird das Square-Paket nicht erkannt.

Inline-Kompilierungsfehler für Android Studio

Ein weiteres Symptom ist, dass von der Square- MessageKlasse geerbte Methoden als "Methode kann nicht aufgelöst werden" -Kompilierungsfehler im Editor angezeigt werden, obwohl sie ordnungsgemäß erstellt und ausgeführt werden.

Einzeiliger Kompilierungsfehler für Android Studio

Muss ich mehr tun, als nur die Abhängigkeit build.gradlefür mein Modul in meinem Projekt hinzuzufügen ?

Dan J.
quelle
Ich hatte ein ähnliches Problem mit meinen Bibliotheken (keine externen). Sehen Sie, wie ich das hier beheben kann: stackoverflow.com/a/50569818/373033
nah0y

Antworten:

131

Die folgenden Schritte helfen

  1. Schließen Sie Ihr Projekt und löschen Sie es in Ihrem Projektordner project/.idea
  2. ~/.gradleOrdner löschen .

Öffnen Sie das Projekt erneut. Alles sollte gelöst sein.

Bioz Nguyen
quelle
1
Stunden mit diesem Problem verbringen. Vielen Dank. Mein Fehler war, dass ich gerade .gradle und nicht .idea
M am
2
Dies funktionierte für mich, indem ich .gradle und .idea löschte und dann ungültig machte und neu startete, um mein Problem zu lösen. und dann mit gradle synchronisieren.
Pankaj
Ich habe den .gradleOrdner aus C:\Users\Hasnain\.gradleeinem anderen Verzeichnis verschoben . Danach zeigt das Android Studio Fehler für jede einzelne Klasse. Dann folge ich den oben genannten Schritten, dann ist das Problem behoben.
hasnain_ahmad
38
Das Löschen .ideaaller Verzeichnisse ist eine schlechte Idee, da möglicherweise alle Projekteinstellungen zurückgesetzt werden. Einfach entfernen .idea/librariesund .idea/cachesendlich das Problem für mich lösen, nachdem ich alle anderen Lösungen ausprobiert habe.
Fdermishin
funktionierte sehr gut in AS 3.1.3. Ich musste nicht einmal Caches ungültig machen. Hoffen wir, dass AS jetzt schneller baut!
Jemand irgendwo
111

Vielen Dank an free3dom, dass Sie mich hier auf den richtigen Weg gebracht haben.

Diagnose

Die Sync Project with Gradle FilesOption in Android Studio scheint die Project StructureBibliotheken auf dem neuesten Stand zu halten .

Gradle Sync

In meinem Fall gab es jedoch einige Fehler:

Fehler gefunden

Das Erweitern des (nicht sehr offensichtlichen) Links zeigte das Detail. Meine Wire-Runtime-Bibliothek wurde an einem falschen Ort angezeigt:

Bibliotheken

Dies schien ein Kater aus meiner ursprünglichen Konfiguration zu sein, in der ich die JAR in einen libs-Ordner importiert hatte.

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

Ich habe es später so geändert, dass es direkt aus Maven Central importiert wird ( wie hier beschrieben ), und es scheint, dass die alte Einstellung nie mit der neuen überschrieben wurde.

Die Reparatur

Das Update besteht darin, die Bibliotheksabhängigkeit vom Project StructureBildschirm zu löschen und dann Sync Project with Gradle Fileserneut.

Mehr Details

Sie können auch sehen, welcher Pfad zur Ressource verwendet wird, indem Sie den .idea/libraries/wire_runtime_1_2_0.xmldirekt öffnen .

Mein gebrochener war:

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

Nach dem Löschen und erneuten Hinzufügen der Bibliothek wurde Folgendes geändert root url:

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

Aktualisieren

Android Studio v0.4.4 behebt anscheinend andere Fehler , die dieselben Symptome aufweisen. Wenn Sie also eine ältere Version haben, möchten Sie möglicherweise ein Upgrade durchführen.

Dan J.
quelle
3
Vielen Dank, Dan J. Bevor ich Ihre Lösung ausprobiere, habe ich diese (meiner Meinung nach) einfacher ausprobiert und es hat bei mir funktioniert: Öffnen Sie das Gradle-Bedienfeld auf der rechten Seite des Editors (über "Maven Projects" und "Commander") und Klicken Sie auf die Schaltfläche Aktualisieren. Dadurch wurden die Moduleinstellungen aktualisiert. Dank an @Matteo Danieli (siehe: stackoverflow.com/a/17043001 )
allmächtig972
1
musste lokale JAR-Abhängigkeiten löschen, die es für mich gelöst haben, danke für die Inspiration
jhegedus
Ich habe gerade auf "Projekt mit Gradle-Dateien synchronisieren" geklickt und jetzt ist alles in Ordnung! Vielen Dank! Du hast meinen Tag gerettet haha
Jorge Gabriel Siqueira
Hat bei mir nicht funktioniert. Aber das Löschen von .gradle und .idea hat funktioniert
Golnar
Heutzutage wird dieselbe Schaltfläche als Elefanten-Symbol mit einem Abwärtspfeil angezeigt.
tm
87

Einfache Lösung

Gehen Sie durch den Link und es hat bei mir funktioniert.

  1. Wählen Sie die FileOption aus dem Menü oben links in Android Studio.
  2. Wählen Sie die Option: Invalidate Cache/RestartEs wird ein Dialog geöffnet.
  3. Klicken Sie auf die erste Schaltfläche mit der Option: Invalidate and Restart
  4. Es wird Android Studio schließen und neu starten. Außerdem wird das Projekt neu indiziert.

Es hat mein Problem gelöst

Gehen Sie zu Datei > Cache / Neustart ungültig machen > Ungültig machen und neu starten

Quelle hier für Youtube

Manmohan Soni
quelle
Das hat bei mir funktioniert; Android Studio zeigte überall Fehler, nachdem ich versucht hatte, an einem Ort mit schlechtem WLAN-Empfang zu programmieren. (!!!) Ich habe dann sichergestellt, dass ich eine gute WLAN-Verbindung habe und wieder aufgebaut, aber die Fehler sind geblieben. Sogar ein Clean / Build hat es nicht gelöst. Ungültige Caches haben das Problem behoben.
Jemand irgendwo
Verwenden von Android Studio 2.1.3 unter Fedora. Diese Lösung hat bei mir funktioniert. Die libgdx-Tools wurden hinzugefügt und der Import hatte einen Fehler, der jedoch problemlos kompiliert wurde. Das Schließen und erneute Öffnen hat nicht funktioniert, aber das Ungültigmachen und Neustarten hat einwandfrei funktioniert.
JoeMoe1984
1
Arbeitete in AS 3.1.4! Ich denke, dies ist ausgerechnet der richtige Weg, um damit umzugehen. Es ist per Menübefehl des Android Studio. Das ist definitiv viel besser als das manuelle Zurücksetzen in der Dateiumgebung.
Jan Bergström
Arbeitete für mich am 3.5.1
Neela
44

1) Klicken Sie auf das Gradle-Symbol (rechte Seite im Android Studio)

Geben Sie hier die Bildbeschreibung ein

2) Klicken Sie auf die Schaltfläche Aktualisieren und warten Sie, bis das Problem behoben ist: D.

Geben Sie hier die Bildbeschreibung ein

DroidDev
quelle
Gehen Sie unter Android Studio 3.1 + zu Datei> Cache / Neustart ungültig machen> Ungültig machen und neu starten.
DroidDev
17

Ich hatte immer noch das gleiche Problem mit Android Studio v3.2.1 und habe das Problem behoben, indem ich nur diese beiden Unterordner des .ideaOrdners entfernt habe (es ist nicht erforderlich, den gesamten .ideaOrdner zu löschen ), während eine Gradle-Synchronisierung nicht funktionierte:

  • ./idea/caches
  • ./idea/libraries
GoRoS
quelle
In den meisten Fällen löst es meine Probleme. In einigen anderen Fällen kann es erforderlich sein, den Cache ungültig zu machen und neu zu starten oder die Gradle-Version zu ändern.
GoRoS
12

Für mich löste das Löschen der Ordner .gradle und .idea des Projekts das Problem.

kvadityaaz
quelle
11

Mach das einfach auf deinem Android Studio:

Datei -> Caches ungültig machen / Neustart -> Ungültig machen und neu starten

Das hat bei mir funktioniert. Der Ordner ./gradle oder ./idea muss nicht gelöscht werden

Arun Yogeshwaran
quelle
9

Mein Hacky Fix dafür -

  1. Öffnen Sie Ihre build.gradleDatei
  2. Schneiden Sie alles innen aus dependencies{}
  3. Für eine super sichere vorübergehende Aufbewahrung in den Notizblock einfügen
  4. Wählen Sie "Jetzt synchronisieren" in der build.gradleDatei
  5. Warten Sie, bis die Synchronisierung fehlschlägt
  6. Fügen Sie Ihre Abhängigkeiten wieder ein
  7. Wieder 'Jetzt synchronisieren'

Versuchte viele Lösungen und dies war die einzige Lösung für mich.

jnutttzzz
quelle
7

Ich hatte dieses Problem nach dem Upgrade auf Android Studio 3.1. Ich habe das Problem gelöst, indem ich alle von mir verwendeten Komponenten aktualisiert habe. Also habe ich die folgenden Einträge in meiner build.gradle (App) geändert:

  1. Aktualisieren Sie das SDK (von "compileSdkVersion 25" auf "compileSdkVersion 26" oder höher, wenn Sie diesen Hinweis lesen):

    // compileSdkVersion 25

    compileSdkVersion 26

    Kommentar: Diese Änderung zwang das Programm, bei der nächsten Synchronisierung neues SDK herunterzuladen / zu installieren.

  2. Appcompat-v7 aktualisieren:

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

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

  3. Upgrade der Feuerbasis:

    // Implementierung 'com.google.firebase: firebase-ads: 11.4.2'

    Implementierung 'com.google.firebase: firebase-core: 12.0.1'

    Implementierung 'com.google.firebase: firebase-ads: 12.0.1'

  4. Aktualisieren Sie in PROJECT build.gradle die Google-Dienste:

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

    Klassenpfad 'com.google.gms: google-services: 3.2.0'

  5. Upgrade gradle (von 4.4 auf 4.6). Von gradle-wrapper.properties: DistributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

Nach diesen Änderungen das Projekt bereinigen, den Cache ungültig machen / neu starten, den Inhalt von .idea / library entfernen und erneut synchronisieren (nicht sicher über die Reihenfolge, aber ALLE diese Aktivitäten haben das Problem für mich gelöst).

Pablo Alfonso
quelle
1
Was ist mit anderen Komponenten, die keine neuere Version haben?
Amir Dadgari
Ich weiß es nicht. Das sind die Komponenten, die ich in meinem Projekt hatte.
Pablo Alfonso
Hallo Amir, laut offizieller Website ist Gradle 4.4 die neueste Version (Stand März 2018). Wo haben Sie Gradle 4.6 gefunden?
Pablo Alfonso
Ich habe den Standort von Gradle 4.6 gefunden. Ich habe die Antwort aktualisiert. Vielen Dank.
Pablo Alfonso
4
Entfernen Sie .idea / Bibliotheken Inhalt, es funktioniert für mich. Vielen Dank
Tram Nguyen
7

Das Löschen des Bibliotheksordners in .idea hat das Problem für mich gelöst. Es befindet sich im Stammverzeichnis / .idea / library des Projekts.

Ich benutze Android Studio 3.1.4

Kamen Stoykov
quelle
2
Dies funktionierte, aber ich musste auch ungültig machen und neu starten.
Dan Anderson
5

Die folgenden Schritte werden ausgeführt, wenn das Projekt erfolgreich kompiliert wurde, jedoch nicht aufgelöste Klassen (alle Klassen werden in allen Dateien in roter Farbe verwendet).

Schritt 1. Löschen Sie die Gradle-Datei

Schritt 2. Löschen Sie die IDE-Datei

Schritt 3. Öffnen Sie das neue Android Studio-Fenster mit einem anderen Android-Projekt auf Ihrem System und schließen Sie Ihr Projekt mit einem Fehler

Schritt 3 . Öffnen / importieren Sie das Projekt jetzt erneut über die Studio-Symbolleiste Android Studio -> Datei -> Öffnen

Hinweis: Wenn Sie jetzt das Projekt importieren, werden die neuen Ordner .gradle und new .idea vom Compiler automatisch mit aufgelösten Abhängigkeiten generiert.

Sumith.Pattar
quelle
2

Wenn alle oben genannten Antworten bei Ihnen nicht funktionieren. Versuchen Sie einfach, Ihre Abhängigkeiten auf die neueste Version zu aktualisieren. Es hat bei mir funktioniert.

Cuong Nguyen
quelle
2

Ich habe die meisten der oben genannten Korrekturen ausprobiert und tatsächlich funktionierte es, alle .AndroidStudio-Konfigurationsordner zu löschen und dann Android Studio neu zu starten.

  • Speicherort: C: \ Benutzer \ Ihr.Benutzername
DIEGO FEDER
quelle
2

Ich habe einen einfachen Weg gefunden

  • Öffnen Sie die App-Ebene build.gradle
  • Entfernen Sie die Abhängigkeit, bei der Fehler und Synchronisierung angezeigt werden.
  • Fügen Sie erneut Abhängigkeit und Synchronisierung hinzu.

Fehler weg!

Vor

Vor

Nach dem

Nach dem

Khemraj
quelle
2

Löschen des .idea/cachesund .idea/librariessollte alle Fehler aussortieren.

Karan_powered_by_RedBull
quelle
2

Es scheint, dass jeder einen anderen Ansatz verwendet, um diese Probleme zu umgehen. Ich werde einen anderen vorschlagen, der meiner Meinung nach etwas weniger invasiv ist als die anderen. Wenn ich Änderungen aus einer von mir enthaltenen aar-Bibliothek einführe, öffne ich die Datei "settings.gradle" für das Projekt.

Schneiden Sie dann das Hauptprojektmodul aus der Liste der Projekte aus:

include ':mainproj',

und synchronisieren Sie dann Ihr Projekt. Fügen Sie es dann wieder ein und synchronisieren Sie Ihr Projekt erneut. Ich glaube, dass dies mit einigen manuellen Löschschritten identisch ist, aber dies ermöglicht es Ihnen, dies über die IDE etwas schneller und weniger schmerzhaft zu tun.

Jay Snayder
quelle
Funktioniert gut für mich. Vielen Dank! @ Jay Snayder
Shivam
2

Ich bin durch die folgende Methode behoben

Methode 1

Datei> Cache / Neustart ungültig machen> Ungültig machen und neu starten

Methode 2

  • Wenn dieser Fehler nur für ein bestimmtes Projekt auftritt, tun Sie dies
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • Wenn dieser Fehler bei allen Projekten auftritt, führen Sie dies aus
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5
Dineshkumar Niet
quelle
1

Diese Lösungen haben mir bei dem gleichen Problem in Android Studio 0.5.8 nicht geholfen.

Ich habe meine Antwort auf dieselbe Frage beschrieben (ich denke): https://stackoverflow.com/a/23891829/534698 Ich habe gerade das Verzeichnis ~ / .AndroidStudioPreview (in Ubuntu) gelöscht. Ich habe alle meine Android Studio-Einstellungen verpasst, aber es funktioniert.

DmitryDzz
quelle
Dies ist das einzige, was für mich funktioniert hat. Android Studio 1.0.2
Bobby Hargett
1

In meinem Fall wurde aus irgendeinem Grund die Android Plugin-Version nicht festgelegt. Ich habe versucht, den Cache zu leeren und auch .gradle und .idea zu entfernen, aber es hat nicht geklappt und nachdem ich endlich stundenlang gewandert war, habe ich dies gefunden.

Datei> Projektstruktur

Jainam Jhaveri
quelle
0

Ich hatte zuvor ein ähnliches Problem: Durch das Ungültigmachen des Caches und das Neustarten wurde es nicht behoben. Ich habe gerade eine Gradle-Synchronisierung durchgeführt und alles hat gut funktioniert.

Mina Samy
quelle
0

Das Problem wurde durch das Reinigungsprojekt behoben Build->Clean Project

Ganesh P.
quelle
0

Für mich verweise ich auf ein Glas in einer Modulbibliothek. Das Symbol im Glas kann nicht aufgelöst werden. So finde ich die Lösung für meine Situation. Benutze den providedWeg.

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

Ich habe das gleiche Problem mit den folgenden Schritten behoben:

  1. Aktualisieren Sie die Bibliotheksversion in Gradle auf eine beliebige Zufallszahl, z. B.: lib_1.0.0 -> lib_1.0.0.0

  2. Gradle Sync

  3. Synchronisierung zeigt Fehler

  4. Versionsänderung rückgängig machen lib_1.0.0.0 -> lib_1.0.0

  5. Gradle Sync

Öffnen Sie die Java-Datei mit Importen, um den Fehler zu beheben.

Deepak PK
quelle
0

Keine der Lösungen funktionierte für mich. Ich habe Java von meinem Computer deinstalliert und Android Studio ausgeführt, um sicherzustellen, dass die Deinstallation erkannt und dann erneut installiert wurde.

Wenn Sie sich für diesen Weg entscheiden, versuchen Sie, den JDK-Pfad zu ändern und den neuen Pfad in der Projektstruktur festzulegen. Wenn das nicht funktioniert, deinstallieren Sie Java .

Kai Lean
quelle
0

Ich habe nur ein sauberes Projekt erstellt und ein Projekt neu erstellt, bevor ich Android Studio neu gestartet habe. Dadurch wird mein Problem gelöst. Möglicherweise aktualisiert Android Studio die Referenzen in der Benutzeroberfläche nicht

Abner Hernandez
quelle