"Symbol R kann nicht aufgelöst werden" in Android Studio

715

In allen meinen Klassen, auf die ich verweise R.id.something, Rist das in rot und es steht "Symbol R kann nicht aufgelöst werden". Außerdem wird es jedes Mal R.layout.somethingrot unterstrichen und lautet "Methode setContentView (?) Kann nicht aufgelöst werden". Das Projekt baut immer gut. Es ist ärgerlich, das die ganze Zeit zu sehen. Ich habe hier viele andere Fragen zu etwas Ähnlichem gelesen, aber am meisten zum Importieren von Projekten aus Eclipse. Ich verwende die meiner Meinung nach neueste Version von Android Studio. Das Projekt wurde mit Android Studio erstellt und funktioniert ohne Probleme, bei denen R nicht gelöst werden kann. Ich würde gerne wissen, was dies verursacht, wenn jemand weiß.

ez4nick
quelle
In der Vergangenheit habe ich XML-Fehler erhalten, wie zum Beispiel: progressbar kann nicht in android.widget.textview umgewandelt werden, und ich habe das behoben, indem ich nur den Namen der Textansicht geändert habe. Ich weiß immer noch nicht genau, was den Fehler verursacht hat.
ez4nick
Wenn Sie den Namen geändert haben, versuchen Sie jetzt möglicherweise, eine Zeichenfolgenreferenz zu verwenden, die in res / strings.xml nicht vorhanden ist.
Augapfel
2
Ich habe viele Male gesucht, bevor ich diese Frage gestellt habe, und viele ähnliche Fragen gefunden, einschließlich der von Ihnen erwähnten. Ich habe den Vorschlag in dieser Frage gelesen und es gibt keinen Import von Android.R in einer meiner Java-Dateien.
ez4nick
2
Hallo allerseits, ich habe vergessen, diese Frage zu stellen, da sie vor so langer Zeit gestellt wurde. Ich hätte meine eigene Antwort vor einem Jahr akzeptieren sollen, das ist jetzt der Kommentar darüber. Das Problem war einfach, dass sich Android Studio zu diesem Zeitpunkt in einem so frühen Stadium befand und ich als neuer Entwickler es niemals hätte verwenden dürfen. Seien Sie versichert, dass jetzt alles gut funktioniert und funktioniert hat. Wenn es möglich ist, stellen Sie bitte meine ursprüngliche Antwort wieder her, damit ich sie akzeptieren kann.
ez4nick
3
Das Nichtfinden von R ist nicht Ihr Fehler, sondern ein Fehler, der durch einen Build-Fehler verursacht wurde. Beheben Sie Ihre anderen Fehler, und es sollte Ihnen gut gehen.
Just_someone

Antworten:

720

Ich hatte dieses Problem auch. Ein einfaches "gradlew clean" und "gradlew build" haben es geschafft.


Klicken Sie auf Erstellen-> Projekt bereinigen, um eine Gradle-Bereinigung durchzuführen

Vipassana Vijayarangan
quelle
56
Manchmal müssen Sie auch Android Studio neu starten. oder zumindest für mich.
Foo Bar Benutzer
24
Für diejenigen, die sich über die Befehlszeile hinwegsetzen, klicken Sie auf Erstellen-> Projekt bereinigen. Dadurch wird ein "Gradlew Clean" durchgeführt. ;)
Herr Concolato
22
Kein Glück ... Der Wiederaufbau der Reinigung funktioniert bei mir nicht
CandleCoder
7
Wenn das Reinigen, Wiederherstellen und Ungültigmachen des Caches-Neustarts nicht funktioniert, gehen Sie zu: import package.R;
Sudip Bhandari
2
Für mich verursachte dies das Problem: Nichtübereinstimmung zwischen ApplicationId in Gradle und Paketname im Manifest (und obwohl der automatische Import die falsche Adresse für die R-Datei hinzufügte). Ich empfehle diesen kleinen Artikel, um den Unterschied zwischen den beiden zu verdeutlichen. blog.stylingandroid.com/package-name-vs-application-id
Tina
227

In den neuesten Versionen von Android Studio funktioniert zumindest für mich Folgendes:

"Tools" -> "Android" -> "Projekt mit Gradle-Dateien synchronisieren"

In Android Studio 3.1.3 (Juli 2018) ist "Projekt mit Gradle-Dateien synchronisieren" in der Hauptmenüleiste verfügbar.

Geben Sie hier die Bildbeschreibung ein

Tom C.
quelle
Welche Version von Android Studio haben Sie damals verwendet?
Joel Handwell
Funktioniert bei mir nicht (Android Studio 0.8.14). Build> Clean-Projekt funktioniert jedoch gut.
Phat H. VU
Funktioniert immer noch in Android 1.2.1. Denken Sie daran, dies mehrmals zu tun, wenn es beim ersten Mal nicht funktioniert.
Noob
Dies ist das einzige, was für mich funktioniert hat. Ich habe zuerst alle anderen Lösungen ausprobiert.
Mac
1
In Android Studio 3.1.1 ist diese Option in Datei -> Projekt mit Gradle-Dateien synchronisieren
Hrishikesh Kadam
155

Ich habe Gradle 3.3.0 verwendet. Es war der Hauptschuldige. Verschwendete 6,50 Stunden aus meinem Leben. Gradle 3.2.1 hat den Fehler behoben.

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

Problem nach Änderung der Gradle-Version behoben. Details zur Geschichte finden Sie hier .

Tushar Monirul
quelle
9
Eine weitere erstaunliche Leistung von Android-Studio-Entwicklern. Zurück zu war 3.2.1war eigentlich die einzige Lösung, die für mich funktioniert hat ...
Vucko
1
Erstaunlicherweise noch ein Problem 2 Monate später. Die neueste Version (3.3.2) hat das Problem nicht behoben, 3.2.1 jedoch.
JakeSteam
Anstatt zu Gradle zurückzukehren 3.2.1, können Sie Android Studio auch auf die Version aktualisieren 3.3. Siehe meine Antwort hier
arne.z
Es funktionierte durch Ändern von 3.3.0 in 3.2.1, aber meine Frage, es funktionierte gut in 3.3.0. Ich hatte gerade Refactor und aktualisierte Manifest-XML-Datei und Gradle-Datei und hatte den Gradle synchronisiert. Darf ich wissen, was der Grund sein könnte
Insoftservice
25 Stunden Internet und sieht so aus, als wäre dies die einzige funktionierende Lösung. Danke Android Studio: (....
Nahabwe Edwin
108

Ich habe ein ähnliches Problem und hier ist, was ich getan habe:

Projekt bereinigen und Projekt mit Gradle synchronisieren,

Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie die buildTools-Version in meinem SDK Geben Sie hier die Bildbeschreibung ein

Ändern Sie ab Build Gradle (Modul) die minSdkVersion von 8 auf 9

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

Aber das alles hat nicht geholfen.

Schließlich fand ich die Antwort (dies funktionierte in meinem Fall)

Wechsel von build.gradle (Modul: App)

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

Oder

Wählen Sie Datei | Änderung der Projektstruktur Build Tools Version auf 21.1.1

Geben Sie hier die Bildbeschreibung ein

Mina Fawzy
quelle
Auch das hat bei mir funktioniert, Builds geändert und Gradle (Modul) -Dateien eingerichtet
Samuele Bolognini
Vielen Dank, wie weise, das war die Lösung.
App Dev Guy
58
  1. Überprüfen Sie Ihre XML-Dateien.
  2. Projekt reinigen.

Das ist es.

Zum Beispiel hatte ich einen Eintrag in meinem strings.xml:

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

Und in habe activity_main.xmlich diesen String-Eintrag verwendet

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

Während ich mit dem Projekt gearbeitet hatte, habe ich das gelöscht

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

Und wurde folglich activity_main.xmlungültig. Als Ergebnis: kann R nicht auflösen.

Überprüfen Sie also Ihre *.xmlDateien und bereinigen Sie das Projekt.

Yuriy
quelle
Dies hat mir wirklich das Leben gerettet [PLUS ONE]
GingerHead
Ein fehlendes Bild, auf das sich eine meiner XMLs bezieht, hat dieses Problem für mich verursacht. Legen Sie das Bild in den Ordner, bereinigt und R ist jetzt wieder glücklich.
Casey Murray
Ich habe meine Zeichenfolge versehentlich zweimal in strings.xml definiert. Studio hat das überhaupt nicht gezeigt. X- (Vielen Dank für Ihre Antwort.
Codingjeremy
Dies ist für andere Entwickler zu lesen. Dieser Ansatz allein sollte das Problem so lösen, wie es für mich der Fall war.
Paramvir Singh Karwal
6
Warum gibt es kein Feedback, um fehlerhafte XML-Dateien in der IDE zu unterstreichen?
Fuhrmanator
53

Wenn Sie diesen Fehler sehen, nachdem Sie Java-Dateien oder -Verzeichnisse an einen anderen Speicherort verschoben haben, können Sie sicherstellen, dass Android Studio verwirrt ist. Und rate was? Das Rückgängigmachen dieser Aktionen behebt das Problem nicht.

Also versuchst du es sauber, aber das funktioniert nicht.

Und ein Neustart funktioniert auch nicht.

Versuchen Sie jedoch Datei -> Caches ungültig machen / neu starten ... -> Ungültig machen und neu starten

Android Studio verwaltet Informationen darüber, welche Dateien von welchen anderen Dateien abhängig sind. Und da das Verschieben von Dateien nicht korrekt implementiert ist, verursacht das Verschieben von Dateien Fehler. Und das ist noch nicht alles: Caches dieser Abhängigkeiten werden verwendet, um den Build zu beschleunigen.

Dies bedeutet, dass Sie nicht nur neu starten müssen, sondern diese Caches auch ungültig machen müssen, um die Integrität wiederherzustellen (oder genauer gesagt, neu zu erstellen).

Scott Biggs
quelle
Hat nicht geholfen. Versucht auch zu reinigen / wieder aufzubauen. Ein Fehler ist aufgetreten, nachdem ich das Java-Paket in ein anderes Paket verschoben habe. Interessanterweise kann in einem Paket auf die R-Klasse zugegriffen werden, aber in einem Paket, das ich verschoben habe, kann nicht darauf zugegriffen werden.
Rint
In den neueren Versionen von Android Studio sind Invalidate und Restart jetzt die Standardmenüauswahl. Dies sollte zumindest einigen Menschen helfen. (Schade, dass sie nicht alle verrückten Fehler beheben, die diesen Fehler überhaupt verursachen!)
Scott Biggs
1
Ich habe diesen Fehler erhalten, nachdem ich ein Projekt verschoben und umbenannt habe. Dies löste das R-Problem, nachdem alle Reinigungs- und Neustartvorgänge nicht durchgeführt wurden. Vielen Dank.
FrankKrumnow
2
Dies dauert ungefähr die gleiche Zeit wie eine Tasse Kaffee - was wiederum verwendet werden kann, um eine schöne Kaffeedusche zu nehmen, wenn es immer noch R in rot markiert ... ヽ (´ ー `) ノ
ZooMagic
1
Ich habe ein
GIF
30

Ich denke, wenn Sie Ihre Aktivitätsdateien in einem anderen Ordner als dem Standardordner ablegen. Sie müssen die Datei com.example.yourproject.R(dies ist Ihre Projektdatei RNICHT Android.R) in ALLE Aktivitäten importieren R. Fügen Sie beispielsweise in die MainActivityDatei diese Zeile ein:

import com.example.yourproject.R;
Ninjahoahong
quelle
1
Ah, und es wird immer noch eine Fehlermeldung angezeigt, bevor Sie das erste Mal erstellen. Wenn Sie jedoch nur auf Build klicken, generiert Android Studio die R-Datei und der Build sollte erfolgreich sein.
Ninjahoahong
und ich denke, es ist besser, dass Sie nach dem Fix Ihr Projekt bereinigen und dann erstellen. oder drücken Sie Umschalt + F9, um mit Ihrem Gerät oder Emulator zu debuggen. Ich bevorzuge das Debuggen auf einem echten Gerät.
Ninjahoahong
Dies ist die beste Lösung. Danke Kumpel
Arundev
Diese Antwort war der Zauberstab. danke
leeCoder
28

Es scheint viele Ursachen für dieses Problem zu geben. Kürzlich habe ich eine zu testende Aktivität namens NewActivity hinzugefügt. Dadurch wurde eine Datei mit dem Namen erstellt, res/menu/new.xmlund gradle mochte diesen Namen nicht, da new ein reserviertes Wort ist.

gradlew clean

oder

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

Dies sind definitiv gute Dinge, die Sie ausprobieren sollten, aber möglicherweise müssen Sie einige andere Probleme lösen, bevor Sie diese Befehle ausführen.

Chawkinsuf
quelle
danke hat auch bei mir funktioniert. Kleine Frage - wo soll ich gradlew clean eingeben, wenn ich es so machen möchte (ich habe "Tools" -> "Android" -> "Projekt mit Gradle-Dateien synchronisieren" gemacht)?
Sergii
Öffnen Sie ein Befehlsterminal, wechseln Sie in das Projektverzeichnis und führen Sie "./gradlew clean" aus
chawkinsuf
Das war es für mich. Vielen Dank!
TinyGrasshopper
Wie löst dies das Problem besser als "Projekt neu erstellen"?
Igor Ganapolsky
Ja, in meinem Fall habe ich eine PNG-Datei namens "import.png" hinzugefügt. Ich musste es umbenennen, in meinem Fall "import_icon.png" und dann wurde das Projekt ok kompiliert.
Mihai71
17

Die R.java-Datei enthält die Verknüpfung zwischen XML- und Java-Seite. "R kann nicht gelöst werden" tritt nur auf, wenn bei einigen Ihrer Ressourcendateien ein Problem vorliegt. Der beste und effektivste Weg ist also, die zuletzt erstellte XML-Datei zu löschen oder in die Res-Datei zu zeichnen. und dann wieder von dort nach Android-Codierungsnormen beginnen. Das ist der einzige Weg. Der effektive und richtige Weg.

Verwenden Sie Git auch für die ordnungsgemäße Verfolgung von Code. ..

Minto
quelle
In meinem Fall gab es nicht nur Probleme in XML, sondern auch in PNG (in Drawable).
CoolMind
15

Ihr Code wird nur verschlüsselt. Die Antwort ist ziemlich einfach.

Gehen Sie einfach zu Build -> Clean Project .

Das sollte den Trick machen.

Überprüfen Sie auch Ihre Version von Android Studio.

Ich verwende derzeit Android Studio 3.0.1 .

lloydyu24
quelle
14

Haben Sie kürzlich Ihre SDK-Tools aktualisiert? Starten Sie den Android SDK-Manager und stellen Sie sicher, dass Sie über die neuesten SDK-Tools verfügen, die jetzt von den Plattform-Tools getrennt sind. Ich hatte das gleiche Problem, als ich meinen SDK-Manager zum ersten Mal aktualisierte. Das SDK- Build- Tools-Paket wurde erst nach dem Schließen und erneuten Öffnen des SDK-Managers zur Installation / Aktualisierung angezeigt.

Invertigo
quelle
Ich glaube, dass dort alles auf dem neuesten Stand ist. Könnte das wirklich ein solches Problem verursachen?
ez4nick
Wenn Sie die neuen SDK- Build- Tools nicht installiert haben, ja.
Invertigo
12

Bereinigen Sie einfach Ihr Projekt und synchronisieren Sie das Projekt mit Gradle File.Geben Sie hier die Bildbeschreibung ein

Und das Problem wird gelöst.

Arunendra
quelle
Es ist zu beachten, dass ein Rechtsklick auf "App" und ein Klick auf die Schaltfläche "Synchronisieren" im Menü dies nicht erreicht. Vielen Dank.
Mafro34
11

Ich habe das mit gehabt

  1. Ein Großbuchstabe in meinen Zeichenressourcen.
  2. Importieren Sie Android.R, das von Android Studio (oder Eclipse) hinzugefügt wird.
  3. Fehler in der XML-Datei
Ryan Heitner
quelle
Ich hatte das Problem, weil in einer meiner XML-Dateien ein Fehler aufgetreten ist. Das Problem wurde Build->Clean Project
behoben und
11

Ich hatte vor kurzem dieses Problem und das Clean / Build usw. hat es nicht behoben. Ich vermutete, dass ich irgendwo ein Problem hatte, war mir aber nicht sicher, wo ich es suchen sollte (war es im Manifest, in den Ressourcen-XML-Dateien usw.?).

Wenn etwas nicht stimmt, können Sie durch eine Codeanalyse herausfinden, was es ist.

Wählen Sie im Menü oben:

Analysieren -> Code überprüfen, das gesamte Projekt mit dem Standardprofil scannen.

Ihre Prüfergebnisse enthalten ein Element namens "Android". Hier erhalten Sie eine Liste aller Probleme, die Probleme in Ihren Ressourcen und in der Manifestdatei verursachen. Die Fehler öffnen die generierten XML-Dateien aus Ihrem Build, in denen alle Fehler rot angezeigt werden.

Mein genaues Problem wurde verursacht, weil ich geschmacksbasierte Manifestdateien verwendet habe und versehentlich einige Berechtigungen innerhalb des <application>Tags im Geschmack kopiert habe .

Inspektion

UPDATE: Ich hatte ein Problem, bei dem Android Studio den Fehler nach dem Fix immer noch anzeigte, obwohl ich jetzt perfekt erstellen und ausführen konnte, während der Fehler noch vorhanden war. (Ich betreibe einen Kanarienvogelbau, also lege ich es vorerst darauf zurück)

Matthew Cawley
quelle
Interessanterweise hatte ich dieses Problem nur bei einer Datei und führte den "Inspect Code" -Prozess aus und er löschte sich von selbst (Bereinigen und Wiederherstellen haben es nicht behoben). Es muss etwas in Lint stecken geblieben sein, das nur das klären konnte. Vielen Dank!
Rundavidrun
Danke dafür! Während dies viele allgemeine Fehler fand, die erwartet wurden, war das Stück, das das gesamte Schloss zum Absturz brachte, ein kleiner Syntaxfehler in einer von Asset Studio generierten XML-Datei! Nachdem ich das gelöst hatte, konnte ich mit einem sauberen Projekt vorankommen.
Bink
10

Ich musste mein RPaket in Android Studio importieren . Zum Beispiel:import com.example.<package name>.R

Perverser Weiser
quelle
1
Ich war hier, bevor ich denke.
Nochmals vielen
1
Das hat bei mir funktioniert. Vielen Dank.
Aquarius_Girl
Dies passierte mir, nachdem ich meinen Paketnamen überarbeitet hatte, aber irgendwie verließ das Android-Studio das import com.example.old-package-name.R, so dass ich den Import umbenennen musste.
verheißungsvoll99
9

Dies ist eine sehr alte Frage, aber es passiert immer noch viel und es gibt hier keine wirklich umfassende Antwort.

Ich hatte dieses Problem öfter als ich zugeben möchte. Dies kann durch eine Vielzahl von Problemen verursacht werden, die meist alle damit zusammenhängen, dass Ihre Projektstruktur nicht den Erwartungen entspricht. Hier ist eine Liste aller Probleme, die ich hatte:

Das Importieren von Eclipse nach Android Studio funktioniert nicht immer reibungslos, insbesondere bei älteren Versionen von Android Studio. Stellen Sie sicher, dass Sie den richtigen Verzeichnisbaum verwenden. Für eine mäßig ausgereifte App sollte es so aussehen:

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

In Ihrer IDE sieht es möglicherweise nicht so aus. Über dem Dateibaum befindet sich ein Dropdown-Menü, in dem Ihre Dateien auf unterschiedliche Weise angezeigt werden. Auf meinem System wird standardmäßig ein Dropdown-Menü mit dem Namen Android verwendet, das Ihre Dateien in verschiedene Typen unterteilt. Es ist einfacher, diese Art von Problem über das Projekt zu beheben, und noch einfacher direkt über das Dateisystem Ihres Betriebssystems, da Android Studio Ordner, die nur einen anderen Ordner enthalten, in einer einzigen Zeile zusammenfasst.

Insbesondere wenn Sie jemals den Namen Ihrer App ändern, müssen Sie sicherstellen, dass der Quellbaum main / java / com / domain / AppName aktualisiert wird. Stellen Sie außerdem sicher, dass das Paket-Tag in Ihrer AndroidManifest.xml korrekt ist.

Wenn entweder in Ihren Gradle-Dateien oder in Ihrer AndroidManifest.xml Fehler auftreten, kann Android Studio Ihre Ressourcendateien nicht ordnungsgemäß erstellen. Gradle-Dateien können manchmal durch ein Upgrade von Android Studio beschädigt werden, insbesondere von den Versionen vor 1.0. Manchmal liegt dies daran, dass ältere Versionen des Gradle-Plugins nicht mehr unterstützt werden. Daher müssen Sie Ihre Versionsnummern aktualisieren. Es kann manchmal schwierig sein, die aktuellen Versionen zu finden. Ab heute, dem 17.07.15, werden meine Apps problemlos kompiliert com.android.tools.build:gradle:1.2.3. Dies befindet sich im Abhängigkeitsblock in der äußersten Gradle-Datei.

Wenn Ihr AndroidManifest auf eine nicht vorhandene Zeichen- oder Zeichenfolgenressource oder -aktivität verweist, wird es unterbrochen und verursacht diesen Fehler. Manchmal, wenn etwas auf eine nicht vorhandene Zeichen- oder Zeichenfolgenressource verweist, wird dieser Fehler angezeigt.

Wenn Ihre Ressourcen eine beschädigte Datei oder eine ungültige XML-Datei enthalten, wird dieser Fehler angezeigt.

Nach meiner Erfahrung hat Android Studio manchmal ohne Grund nur Probleme, und Sie müssen es und / oder Ihren PC neu starten. Ich weiß nicht warum, aber manchmal funktioniert es.

Wenn Sie zwei XML-Ressourcen mit demselben Namen in Verzeichnissen haben, die sich nicht gegenseitig überschreiben, kann dieses Problem auftreten. Beispielsweise können Sie in drawable-mhdpi und drawable-xhdpi denselben Namen haben, da sie sich je nach Zielgerät überschreiben. Wenn Sie jedoch im Layout und im Menü denselben Namen haben, tritt ein Problem auf. Benennen oder löschen Sie eine der Dateien.

Wenn nur einige Ressourcen dieses Problem haben, befinden sich diese Ressourcen höchstwahrscheinlich im falschen Verzeichnis.

In einem Fall musste ich Android Studio komplett neu installieren. Ich weiß nicht, was los war, aber es hat funktioniert.

In einem Fall habe ich mein gesamtes Projekt in ein anderes Verzeichnis verschoben und es als neues Projekt erneut importiert. Ich weiß nicht, was los war, aber es hat funktioniert.

XML-Dateien mit reservierten Wörtern für Namen können dieses Problem verursachen. Benennen Sie sie um oder löschen Sie sie.

Es gibt verschiedene Möglichkeiten, wie Ihre Gradle-Datei auf eine Version der Build-Tools verweisen kann, die Sie nicht installiert haben. Korrigieren Sie dies, indem Sie Gradle ändern oder die entsprechenden Build-Tools herunterladen.

Nachdem Sie das Problem behoben haben, müssen Sie Ihr Gradle-Projekt bereinigen. Gehen Sie dazu zum Menü Erstellen oben und wählen Sie Projekt bereinigen.

TBridges42
quelle
9

Gehen Sie einfach zur Android Top-Menüliste. klicken Sie auf Build - Menü, in unter Erstellen klicken Sie auf Projekt neu.

Geben Sie hier die Bildbeschreibung ein

Gundu Bandgar
quelle
9

Dieses Problem trat auf, als ich den Domänenordner meiner App manuell umbenannte. Um dieses Problem zu beheben, musste ich

  1. Stellen Sie die richtige packageOrdnerstruktur von <manifest>in ein AndroidManifest.xml.
  2. Legen Sie das neue Paket Standort für android:namevon <activity>in AndroidManifest.xml.
  3. Cache löschen durch

Menü Datei -> Caches ungültig machen / neu starten ...

Das Problem ist behoben, sobald das Android Studio neu gestartet und der neue Index erstellt wurde.

Sridhar
quelle
9

Ich hatte das gleiche Problem: Android Studio 3.2 Das Projekt wird kompiliert und läuft einwandfrei, aber auf dem Bildschirm wird die Warnung "Symbol" R kann nicht aufgelöst werden "angezeigt

Hilft nicht :

  • Build-> Clean Project
  • Build-> Projekt neu erstellen
  • Datei-> Caches ungültig machen / neu starten

Hilft:

entweder

in build.gradle

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

ersetzen mit

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

oder

Aktualisieren Sie Android Studio auf 3.3

Alex Burov
quelle
Du hast mein Leben gerettet ! Das Aktualisieren von Android Studio auf 3.4 löste das Problem für mich
Artory
8

Ich habe einen Sonderfall für dieses Problem.

In meinem Projekt läuft alles gut, es kann erfolgreich kompiliert und erstellt werden, aber in meiner Android Studio-IDE (und ich habe auch Intelligent IDEA ausprobiert, sie befinden sich in derselben Situation) kann die R.java-Datei nicht gut aufgelöst werden und ist es immer rote Linie fallen lassen.

Genau wie dieser: Geben Sie hier die Bildbeschreibung ein

Das hat mich fast verrückt gemacht, ich kann die gelesene Farbe beim Programmieren nicht ertragen.

Endlich stellte ich fest, dass dieses schwierige Problem durch die Dateigröße meines R.java verursacht wird. Mein Projekt ist sehr umfangreich und unterstützt viele mehrere Sprachen und mehrere Bildschirmgrößen. Es gibt so viele Ressourcen, dass die Dateigröße meines R.java etwa 2,5 Millionen beträgt .

Die maximale Größe einer Datei in Android Studio beträgt in den Standardeinstellungen 2,5 MB, sodass Dateien, die größer als diese Grenze sind, nicht gut aufgelöst werden können. Und Sie können die Standardeinstellungen in "AndroidStudio-root / bin / idea.properties" ändern.

Ändern Sie diese Zeile:

idea.max.intellisense.filesize=2500

zu:

idea.max.intellisense.filesize=5000

Dann Android Studio neu starten, die rote Farbe entlassen, kann ich wieder glücklich programmieren.

Fido Zhang
quelle
In Android 3.2 einfach helfen / Benutzerdefinierte Eigenschaften bearbeiten
Beto
Guter Tipp, aber es hat mein Symbol R
Aliton Oliveira
7

Erstellen> Projekt bereinigen

Das hat bei mir funktioniert. Hatte das gleiche Problem ein paar Mal, und dies scheint es richtig zu machen. Es sei denn, Sie haben etwas geändert oder eine Variable R aufgerufen. Dieses Problem tritt normalerweise aus dem Nichts auf, wenn es mir passiert. Ich stelle mir also vor, dass nur Android-Studios ausflippen. Haha

Viel Spaß und viel Glück bei Ihren Projekten.

S. Pedro
quelle
Vielen Dank. Es hat auch bei mir funktioniert. Ich ersetze einige Bilder in Drawable und habe diesen Fehler erhalten.
KCP
7

Führen Sie Folgendes aus: Erstellen> Projekt bereinigen

WICHTIG: Stellen Sie sicher, dass nach dem Bereinigen des Projekts im Nachrichtenbereich keine Fehler auftreten (Alt + 0). Wenn Sie rote Kreise mit Ausrufezeichen finden, müssen Sie diese Fehler in Ihrem Code entfernen.

Meistens hängen diese Fehler mit @ string / oder @ array / zusammen. Projekt wieder reinigen und fertig!

Hassan Naqvi
quelle
7

Ich hatte das gleiche Problem und es passiert, wenn ich ein neues Projekt erstelle.

Was ich tue ist:

  • Suchen Sie nach SDK-Updates
  • dann Android Studio Updates,
  • Öffnen Sie dann das Projekt erneut
  • Öffnen Sie die Datei andoridmanifest.xml
  • lösche ein Leerzeichen zwischen einem "_>" im android: label und speichere.

Das ist für mich in Ordnung.

Elsanty
quelle
7

Es fiel mir schwer, das selbst zu beheben.

  • Stellen Sie sicher, dass Ihre layout.xml-Dateien keine Fehler enthalten.
  • Gehen Sie zu Erstellen> Projekt bereinigen

Es hat bei mir funktioniert, hoffe es funktioniert auch bei Ihnen.

Oussama Essamadi
quelle
6

Ich hatte das gleiche Problem und meistens wird es von gelöst

  • Projekt mit Gradle-Dateien synchronisieren
  • Doing Körperbau -> Sauber Projekt
  • Doing Datei -> Invalidate Cache - Speicher

Aber diesmal blieb der Fehler auch nach all diesen Dingen bestehen und ich fand endlich den Schuldigen.

Das Problem war in einer XML-Datei , in der ich einen normalen Zeichenfolgenwert für einen Ressourcentypandroid:id anstelle eines ID-Ressourcentyps angegeben habe .

FEHLER

android:id="username"

KORREKTUR

android:id="@id/username"

Vermasseln Dinge im Zusammenhang mit resourcesin XML - Dateien ist ein wesentlicher Grund für diese error.Beware der Tatsache , dass es nicht als Fehler in der XML - Layout - Datei angezeigt werden kann.

HINWEIS

In den meisten Fällen zeigt Ihnen der Compiler die Fehlerquelle in der Nachricht an. Versuchen Sie es zuerst zu überprüfen, bevor Sie andere Lösungen versuchen

Siva Prakash
quelle
6

`Ich hatte das gleiche Problem und es wurde gelöst durch:

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
quelle
Dies ist eine gute Antwort, obwohl ich nur '//' in die Gradle-Datei einfügen und Resync auswählen musste. Dann erkannten alle AS den Import und erlaubten mir, die App auszuführen.
Val
5

Diese Notation scheint gut zu funktionieren.

android:id="@+id/viewID"

Das Design-Panel von Android Studio scheint nicht gut zu funktionieren.

Tevin J.
quelle
5

Gleiches Problem. Begonnen, als ich einige Bilder in meinen Zeichenordner einfügte und versuchte, darauf zuzugreifen. Auch die hinzugefügten Bilder hatten die Erweiterung mit Großbuchstaben. Das scheint den Build zum Absturz gebracht zu haben, denn selbst wenn ich sie umbenannte, war die Nachricht dieselbe und R war nicht zugänglich. Was ich getan habe ist, in der .iml-Datei habe ich nach dem excludeFolder gesucht und sie entfernt (wie unten):

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

Danach habe ich das Projekt neu aufgebaut und R ist auf magische Weise wieder aufgetaucht.

user1137313
quelle
5

Es gibt viele Ursachen für diesen Fehler.

  1. Manchmal tritt es auf, wenn eine Bilddatei mit demselben Namen ersetzt wird.
  2. Angenommen, Sie haben ein Element aus Ihrer Layout- <Button/>XML-Datei gelöscht, z. B. a, aber es ist weiterhin in einer Aktivität oder einem Fragment .java deklariert.
  3. Viel mehr.

Der beste Weg, um den Fehler zu verfolgen, besteht darin, ihn ziemlich sauber neu zu erstellen oder mit einem absichtlichen Fehler zu synchronisieren.

Wenn es Ihr Problem nicht löst, muss ein Fehler oder ein Laufzeitfehler vorliegen oder ein Fehler aufgrund einer unsachgemäßen Verwendung von Ressourcen in einer Java- oder XML-Datei in Ihrem Code oder Design auftreten, die gradle zum Stoppen zwingt, weil (R. ) esource file kann Ihre Ressourcen nicht richtig indizieren und das müssen Sie zugeben.

Wenn Ihr Projekt ausgeführt wurde, bevor Sie die Änderungen vorgenommen haben, kommentieren Sie die vorgenommenen Änderungen aus und versuchen Sie, das Projekt neu zu erstellen.

Es wird sicherlich funktionieren, da es keine Änderungen geben wird.

Um den genauen Fehler zu ermitteln, überprüfen Sie die Änderungen, indem Sie die Änderungen in kleinere Module aufteilen.

Beispiel: Wenn Sie eine Liste mit einem Klick auf eine Schaltfläche sichtbar machen und Listenwerte in den Adapter einfügen, prüfen Sie zunächst, ob Sie sie sichtbar machen können oder nicht, und prüfen Sie dann, ob Adapterfehler vorliegen.

Sourav Roy
quelle
4

Das war ein großer Kopfschmerz für mich. In meinem Fall trat der Fehler nach der Konfiguration von "Google Play Services" in Android Studio (Installation von + build.gradle config) auf. Dies erfordert wiederum minsdk> 7, aber der Fehler ist sehr unklar (tatsächlich erscheint eine Beschwerde darüber nur als "info"). Wie auch immer ... beim Ändern von minsdk auf 8 sowohl in der Manifestdatei als auch in der Datei build.gradle und beim erneuten Erstellen des Projekts war der Fehler behoben.

Also ... ein allgemeiner Ratschlag, wenn ich verallgemeinern darf - Sie haben wahrscheinlich ein Problem in Ihrer Manifestdatei oder einer anderen Konfigurationsdatei, das einen ordnungsgemäßen Build verhindert. Schauen Sie sich den Fehlerbericht genau an, auch die Nachrichten mit dem Titel "info", um Hinweise darauf zu erhalten, was es sein könnte ...

Ayal Gelles
quelle