Android Studio markiert R rot mit der Fehlermeldung "Symbol R kann nicht aufgelöst werden", aber die Erstellung ist erfolgreich

150

In jedem Projekt, das ich in Android Studio erstellt habe, werden alle Verwendungen von R rot mit der Fehlermeldung "Symbol R kann nicht aufgelöst werden" markiert, aber die Kompilierung ist erfolgreich und die Anwendung wird ausgeführt. Dies ist wirklich ärgerlich, da es die automatische Vervollständigung blockiert und überall in meinem Code riesige rote Wellenlinien anzeigt.

Ich verwende Android Studio 1.7.0 und erstelle das Projekt mit den Standardeinstellungen. Ein Screenshot ist beigefügt:

Android Studio Screenshot

Das ist mein build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

So sieht die Projektstruktur aus:

Geben Sie hier die Bildbeschreibung ein

Irgendeine Idee, wie man das behebt?

Ilya Kogan
quelle
Habe dies bei einigen meiner Projekte geschehen lassen. Um dies zu beheben, 'Clean', 'Rebuild', Projekt schließen und erneut öffnen. Wählen Sie dann Extras -> Android -> Projekt mit Gradle-Dateien synchronisieren. Versuchen Sie auch Folgendes: Schließen Sie das Projekt und verschieben Sie den Ordner physisch in ein neues Verzeichnis oder benennen Sie das aktuelle Verzeichnis um. Importieren Sie nun das Projekt, als wäre es neu. Es gibt verschiedene Möglichkeiten, dies zu tun. Wählen Sie auf dem ersten Android-Bildschirm die Option "Importieren". Wenn Sie das Verzeichnis suchen, importieren Sie nicht aus dem Projektnamen oder dem Hauptverzeichnis, sondern importieren Sie eine Ebene in "App".
Snappy Cracker
Leser, bevor Sie etwas anderes ausprobieren, das komplex sein könnte ... versuchen Sie einfach, Android Studio neu zu starten.
eRaisedToX

Antworten:

111

Klicken Sie einfach auf Build -> in Ihrem Android Studio Option Projekt neu erstellen .

pathe.kiran
quelle
Ich hatte ein JPG-Bild, das ich ohne ordnungsgemäße Konvertierung in PNG geändert hatte. Das Entfernen dieser Datei löste das Problem. seltsam aber ..
DeathRs
Ich wollte dieses Ding unbedingt machen, aber Android Studio ist in seiner Entwicklung berüchtigt. Meins wird mehr als 30 Minuten dauern, wenn ich das getan habe.
Neon Warge
perfekte Lösung!!
Akash Bisariya
Musste dies zweimal tun
Janac Meena
Manchmal liegt es an Ihrem XML-Dateifehler. <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">Überprüfen Sie diese Zeilen in XML-Dateien und korrigieren Sie sie.
Meyasir
63

Ich habe festgestellt, dass dieses Problem durch Fehler in meinen XML-Dateien verursacht wurde. Sobald Sie die XML-Fehler behoben haben, führen Sie eine Bereinigung / Erstellung durch, um das Problem zu beheben.

BlackHatSamurai
quelle
8
Ich helfe nur dem, der liest. Es ist wahrscheinlich etwas in den XML-Dateien, das den Fehler verursacht. Für mich (nicht sicher warum), aber es wurde durch eine Fragment-Layoutzeile verursacht: android: layout_bottom = "@ id / my_list" Wechseln Sie einfach von dieser Zeile von einem Fragment zu layout_top für ein anderes Fragment.
Mingsheng
Das Gleiche für mich! Vielen Dank für die Hilfe
Michael
Hier gilt das gleiche! Danke dir.
Teddy Wilson
Gute Antwort! Danke
Berat Eyüboğlu
Ja, in meinem Fall: Meine XML-Elementhöhe war '50' anstelle von '50dp'.
Krishna Raj Salim
44

Klicken Sie auf Build -> Rebuild Projectund dann auf Tools -> Android -> Sync Project with Gradle Files.

user2284700
quelle
2
Das funktioniert. Ich habe den Fehler nach dem Upgrade der Gradle-Version festgestellt.
Vaquita
Meine Situation war: Jeder cleanhat alles Rzu Fehlern gemacht, jeder hat es buildbehoben, aber natürlich "reinigt" das Projekt. Nachdem ich dieser Antwort gefolgt war, konnte ich das Projekt endlich bereinigen, ohne Fehler zu bekommen.
Talz
Einfach zur Antwort von @ user2284700 hinzufügen: In AS 3.1.3 befindet sich "Projekt mit Gradle-Dateien synchronisieren" im Menü "Datei"
BMU
32

Stellen Sie sicher, dass AndroidManifest.xmlder Paketname korrekt ist. Das hat das Problem für mich behoben, als mein R.whateverrot markiert war!

Ich würde auch empfehlen, alle Ihre gradleDateien zu überprüfen , um sicherzustellen, dass diese Paketnamen korrekt sind. Das sollte nicht alles rot machen, aber es verhindert, dass Ihre gradleDateien richtig synchronisiert werden.

reckte sich
quelle
Vielen Dank! Ich machte ein kleines Experiment mit Paketumbenennung, um es zu vergessen ...
Tom
17

NICHTS TUN . Aktualisieren Sie einfach Android Studio. Löse mein Problem! Perfekt arbeiten.

TedVN
quelle
1
Ich habe alle hier genannten Lösungen ausprobiert. Das Aktualisieren des Android-Studios hat das Problem behoben
Siva K Reddy C Shiva
1
Vielen Dank, dass Sie mir erspart haben, mehr Stunden damit zu verschwenden
wmurmann
12

Ich hatte ein ähnliches Problem mit 'com.android.tools.build:gradle:3.3.1', ich habe alle oben genannten Lösungen ausprobiert, nichts hat funktioniert. Es wurde tatsächlich gebaut: Gradle 3.3.1 Ausgabe. Ich habe es auf 3.2.1 geändert, dann hat es funktioniert.

Es kann also ein Problem mit der Version build: gradle geben.

Shashank Bhong
quelle
03.2019 Das hat geholfen. Interessant war, dass dies nur bei einem meiner Projekte geschah und bei zwei anderen Projekten nicht. Jetzt hoffe ich, dass das Android Studio-Update nichts anderes durcheinander gebracht hat ...
Martin Berger
9
  1. Wählen Sie die Menüoption Datei> Projektstruktur.
  2. Drücken Sie im Meldungsfeld auf OK (Änderungen an der Projektstruktur aktualisieren build.gradle nicht).
  3. Wählen Sie im Seitenbereich "Projekteinstellungen" die Option "Module".
  4. Überprüfen Sie für jedes Modul (Projekt), ob der Abschnitt "Ausgeschlossene Ordner" nicht den Ordner "Build" enthält. Wenn dies der Fall ist, klicken Sie auf die Schaltfläche 'x' neben dem Ordner "build".
  5. drücke OK

Sie sollten jetzt den Ordner "MyAppProject / MyApp / build / source" sehen. Dies sollte den Ordner "r" enthalten (in dem die R.java-Datei generiert wird). Hier sollte entweder "debug" oder "release" in blau angezeigt werden (wenn Sie ein projectFlavour in Ihrem build.gradle haben, befinden sich diese im Ordner ""). In diesem Debug- / Release-Ordner sollte sich der Paketname Ihrer App und dann eine R.java-Datei befinden, die alle Ihre Ressourcen-IDs enthält.

reece
quelle
1
Dies ist nicht mehr relevant, aber beachten Sie, dass ich keine R.java-Datei in diesem Ordner hatte, wie Sie in meiner Antwort an Loïc sehen können.
Ilya Kogan
9
  1. Erstellen Sie das Projekt neu.
  2. Wenn (1) nicht funktioniert, starten Sie Android Studio / Eclipse neu.

Wenn beides nicht funktioniert, überprüfen Sie alle Ihre XML-Dateien. Dieser Fehler tritt auf, wenn Ihre XML-Datei falsch ist.

Lalit Kushwah
quelle
In meinem Fall gab es ein Attribut in der Datei manifest.xml, das das Problem verursachte. Ich hatte schlaflose Nächte, bis ich die Zeile entdeckte und einfach löschte. Das Attribut war android: fullBackupContent = ""
Kingsley Ijike
6

Aus bestimmten Gründen verwendet Android Studio unterschiedliche Konfigurationen für den Editor und den Compiler. Wenn es für den Compiler funktioniert, ist es gut. Wenn es für den Editor nicht funktioniert. (Es sieht ungelöste Dateien).

Sie müssen der Quelle Ihres Projekts einige Verzeichnisse hinzufügen. Zum Beispiel sollten alle Ressourcen als "Quelle" markiert sein.

Datei-> Projektstruktur

Wählen Sie "Module" und dann Ihr Projekt. Und wählen Sie die sourcesRegisterkarte. Suchen Sie rechts Ihr Ressourcenverzeichnis und klicken Sie auf die blaue Schaltfläche "Quelle". Schließen Sie alle und es sollte funktionieren.

Außerdem müssen Sie dies sicherstellen

build/source/r/debugist auch eine Quelle. In habe ich alle meinebuild/source/*/debug als Quelle markiert.

Hauptmodul .iml

<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="android" name="Android">
      <configuration>
        <option name="SELECTED_BUILD_VARIANT" value="debug" />
        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
        <option name="ALLOW_USER_CONFIGURATION" value="false" />
        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
      </configuration>
    </facet>
    <facet type="android-gradle" name="Android-Gradle">
      <configuration>
        <option name="GRADLE_PROJECT_PATH" value=":SherlockHolmes" />
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/r/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/rs/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/res/rs/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/res" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/aidl" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/assets" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/java" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/jni" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/rs" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/res" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/resources" isTestSource="true" />
      <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/exploded-bundles" />
      <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/symbols" />
      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
    </content>
    <orderEntry type="jdk" jdkName="Android 4.2.2" jdkType="Android SDK" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Sherlock.aar" level="project" />
    <orderEntry type="library" name="SlidingMenu.aar" level="project" />
    <orderEntry type="library" name="support-v4-13.0.0" level="project" />
  </component>
</module>

Projekt iml

<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="android-gradle" name="Android-Gradle">
      <configuration>
        <option name="GRADLE_PROJECT_PATH" value=":" />
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
      <excludeFolder url="file://$MODULE_DIR$/build" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

Schwarze Magie

Ich bin mir nicht sicher, aber ich habe gehört, dass es funktioniert, obwohl ich mir ziemlich sicher bin, dass es nichts ändern sollte. Versuchen Sie, das Projekt zu kompilieren und zu speichern, nachdem Sie alle erforderlichen Zeilen kommentiert habenR . Dann, wenn nicht alles rot ist. Versuchen Sie, sie wieder hinzuzufügen. Das Seltsame ist, dass Ihr Build / Ihre Quelle nicht generiert wird.

Auch diese Frage schlägt vor, zu überprüfen, ob der Compiler einen externen Build verwendet.

Android Studio generiert kein R.java für mein Importprojekt

Randnotiz

Stellen Sie außerdem sicher, dass in Ihrem Java-Code keine vorhanden ist. import android.r;Nach dem, was Sie gezeigt haben, scheint alles in Ordnung zu sein. Nur seltsam, dass der Build / die Quelle nicht erstellt wird. Zum Beispiel habe ich kein build / apk. Möglicherweise befinden Sie sich im Release-Modus und diese Verzeichnisse werden nicht erstellt.

Loïc Faure-Lacroix
quelle
Hallo Loïc, ich habe der Frage einen Screenshot der Projektstruktur hinzugefügt. Wie Sie sehen können, ist der gesamte resOrdner als "Quelle" markiert, und ich habe kein build/sourceVerzeichnis. Soll ich es erstellen lassen? Wenn das so ist, wie?
Ilya Kogan
Nun, das Build / Source-Verzeichnis sollte beim Erstellen erstellt werden, soweit ich das beurteilen kann. Android Studio ist eine "Alpha" -Version. Es kommt mit vielen seltsamen Dingen. Ich habe 1.7.0_21. Eine Idee wäre, a build/rebuil project. Wenn Sie gradle über die Befehlszeile ausführen können, werden möglicherweise einige Fehler ausgegeben, die im Editor nicht angezeigt werden.
Loïc Faure-Lacroix
Es wird nicht erstellt, obwohl das Projekt kompiliert und erfolgreich auf dem Gerät ausgeführt wird.
Ilya Kogan
Die IML-Dateien sehen Ihren sehr ähnlich, wobei dieselben Ordner eingeschlossen und ausgeschlossen sind. "file: // $ MODULE_DIR $ / build / source / r / debug" ist enthalten, obwohl es nicht existiert. Die Verwendung eines externen Builds verursacht andere Probleme (das Projekt wird überhaupt nicht kompiliert). Wie überprüfe ich, ob ich mich im Release-Modus befinde?
Ilya Kogan
5

Hier ist meine vorübergehende Lösung, bis ich eine bessere finde:

  1. Finden Sie mit Everything heraus, wo R.java erstellt wurde. In meinem Fall war es C:\Program Files (x86)\Android\android-studio\system\compiler\<project-name>.cb969c52\.generated\aapt\<module-name>.6badd9a4\production\com\<project-name>\<module-name>

  2. Klicken Sie in der Projektansicht auf das Modul und drücken Sie F4. Ignorieren Sie die Warnung.

  3. Klicken Sie auf "+ Inhaltsstamm hinzufügen" und wählen Sie den oben genannten Ordner aus. Stellen Sie sicher, dass es blau markiert ist (als Quelle).

Nachdem ich das getan habe, sind plötzlich alle Warnungen weg. Das Problem ist, dass bei der Zusammenarbeit mit anderen Personen der Ordnername auf jedem Computer unterschiedlich ist. Seien Sie daher beim Synchronisieren vorsichtig.

Ilya Kogan
quelle
Haben Sie es mit der neuesten Version 0.2.3 von Android Studio versucht? Wenn das Problem weiterhin auftritt , melden Sie es an code.google.com/p/android/issues, damit die Entwickler von Android Studio davon Kenntnis haben und das Problem untersuchen und beheben können.
Reece
1
Nein, ich habe Android Studio aufgegeben. Ich liebe die IDE, aber es gibt immer noch so viele Fehler, dass sie für die Arbeit in einem Team ungeeignet sind. Wir gingen zurück zu Eclipse.
Ilya Kogan
2
Kein Problem. Da sich Android Studio noch in der Entwicklung befindet, müssen Sie in der Lage sein, alle gefundenen Fehler zu melden (damit sie behoben werden können) und die rauen Kanten tolerieren. Dies ist nicht jedermanns Sache.
Reece
5

Das hat bei mir funktioniert:

  1. Projekt schließen und erneut öffnen

  2. Drücken Sie auf "Projekt mit Gradle-Datei synchronisieren" (befindet sich neben dem AVD-Manager-Symbol im oberen Menü) und wiederholen Sie 1-2, wenn Gradle zum ersten Mal nicht synchronisieren konnte. (meins hat beim zweiten mal gearbeitet).

Arbeitete mit Android Studio 1.2.2

bastami82
quelle
5

Ich habe es 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
Eines Tages bricht meine App ohne ersichtlichen Grund einfach ... Fehler überall ... Vielen Dank! Das war sehr hilfreich!
JFreeman
1
Segne dich, ungültige Caches waren das einzige, was geholfen hat
Kibi
4

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
4

Manchmal werden diese Build-Fehler aus dem Nichts fortgesetzt. Wenn Ihnen dies passiert, versuchen Sie Folgendes:

Überprüfen Sie die Gültigkeit des XML in Ihren Ressourcendateien erneut: Wenn Ihre R.java-Datei nicht für den letzten Build generiert wurde, werden Fehler in Ihrem Projekt angezeigt, wo immer Sie auf eine Ressource verweisen. Dies kann durch einen Tippfehler in einer Ihrer XML-Dateien verursacht werden. Layout-XML wird nicht immer validiert, sodass Tippfehler in diesen Dateien möglicherweise nicht ausdrücklich auf Sie aufmerksam gemacht werden. Wenn Sie den Tippfehler finden und die Datei speichern, wird R.java neu generiert.

Reinigen Sie Ihr Projekt! Select Build → Clean ProjectDadurch wird das Projekt von Grund auf neu erstellt, was zu einer fehlerfreien Erstellung führen kann.

Synchronisieren Sie Ihr Projekt mit Gradle! Select Tools → Android → Sync Project with Gradle FilesAndroid Studio erstellt das Projekt mit den richtigen Projekteinstellungen von Grund auf neu. Dies kann dazu beitragen, Probleme nach dem Ändern Ihrer Gradle-Konfiguration zu beheben.

Führen Sie Android Lint aus! Lint kann Ihnen gute Informationen zu einem Problem geben. Wenn das oben genannte nicht funktioniert, werden Sie hier höchstwahrscheinlich Ihr Problem finden. select Analyze → Inspect Code → select Whole project → OK Analysieren Sie Lint-Vorschläge sorgfältig, um Lintauszuführen. Beginnen Sie mit Fehlern und dann mit Warnungen.

Viel Glück.

Bissiger Cracker
quelle
In meinem Fall gab es ein Attribut in der Datei manifest.xml, das das Problem verursachte. Ich hatte schlaflose Nächte, bis ich die Zeile entdeckte und einfach löschte. Das Attribut war android: fullBackupContent = ""
Kingsley Ijike
3

Dieser Fehler tritt bei mir auf, weil meine Datei activity_main.xml eine ungültige Eingabe enthält.

Wenn Sie versuchen, Ihr Projekt zu erstellen oder zu bereinigen , werden Fehlermeldungen angezeigt .

Ich habe meine Fehler behoben, indem ich diese Fehlermeldungen gelesen und korrigiert habe, was in meiner XML-Datei nicht stimmt. dann Projekt neu erstellen .

user5194610
quelle
2

Ich hatte diesen Fehler vor ein paar Tagen und habe versucht, mich umzuschauen, bis ich mich entschied, Android Studio neu zu installieren. Es hat bei mir funktioniert.

Mazvél
quelle
Neuinstallation hat nicht geholfen :(
Ilya Kogan
Dies ist eine sehr grobe Methode.
Taslim Oseni
2

Wenn Sie ein Projekt aus einem Beispiel erstellen, ohne das vorhandene Projekt zu importieren, ist dies gut (verhindert Konflikte mit gradle, .idea, .iml, build, jars und apks, dh allen unnötigen vom Build generierten Dateien), nachdem Sie ein neues Projekt erstellt und kopiert haben und das Einfügen aller relevanten Ressourcen würde ich empfehlen:

Überprüfen von Paketen und Importen aus Paketen innerhalb des Projekts {AndroidManifest-Deklaration und alle Importe in Java-Klassen}, aller Ressourcen (Drawable, Mip-Map, Layouts und Menüs sowie Ihres build.gradle (ein Beispiel für build.gradle zur Verwendung mit dem neuesten SDK) kann auf Anfrage bereitgestellt werden)) um zu sehen, ob sie vorhanden sind und ob deklarierte Zeichenfolgen und IDs tatsächlich vorhanden sind und verwendet wurden. Danach sollte Ihr einziger Fehler die gestellte Frage sein:

Bulid-> Clean Project

Extras-> Android-> Projekt mit Gradle-Dateien synchronisieren

Datei-> Caches ungültig machen und neu starten

Im schlimmsten Fall hilft ein Neustart Ihres Computers.

Das obige sollte funktionieren. Fühlen Sie sich frei, bei Bedarf Fragen zu stellen, dh Kommentare zu posten.

iOSAndroidWindowsMobileAppsDev
quelle
2

Dies führt hauptsächlich zu Fehlern in der XML-Datei. Überprüfen Sie Ihre neuesten XML-Änderungen und erstellen Sie sie neu. Das gleiche Problem tritt bei mir auf.

parvez rafi
quelle
Das hat geholfen, danke!
Farahm
2

Ich hatte einen Fehler beim Wiederverwenden beim Kopieren / Einfügen in der Paketdeklaration für das Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wrong.package.name">

Der Name der Hauptaktivität hatte den richtigen Pfad, sodass das Manifest keine überprüften Fehler aufwies.

Nach dem Beheben dieses Problems wurden in der Quelldatei immer noch Fehler angezeigt, obwohl die Erstellung erfolgreich war. Ich habe gerade die App ausgeführt und dann die Quellfehleranzeigen gelöscht.

Der Ziegelstein
quelle
Für mich gab es ein Attribut in der Datei manifest.xml, das das Problem verursachte. Ich habe die Zeile einfach gelöscht. Das Attribut war android: fullBackupContent = ""
Kingsley Ijike
1

Es hat auch bei mir funktioniert, indem ich den Ordner .idea / library manuell bereinigt und anschließend auf "Projekt mit Gradle-Dateien synchronisieren" geklickt habe, um das Problem zu lösen. Anscheinend entfernt diese Synchronisierung keine Elemente, sondern behält die alten bei und fügt die aktuellen hinzu. Wahrscheinlich ein Fehler zu melden :)

kikoso
quelle
1

Hatte das gleiche Problem mit Android Studio, fand ich heraus, dass Build / Generated / Source / R nur Release-Ordner und nicht Debug enthalten. Aus irgendeinem Grund hat der Debug-Build keine verwendbare R-Klasse generiert.

Ich habe es gelöst, indem ich die Projekt-IML-Datei geöffnet und diese Zeile repariert habe

<option name="RES_FOLDERS_RELATIVE_PATH" value="" />

zu

<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />

Mit Gradle neu synchronisiert, Zeilen mit R auskommentiert, Debug ausführen, um das R zu generieren, nicht kommentierte Zeilen mit R ausführen und das Debug erneut ausführen, behoben.

Lukas Hanacek
quelle
Wo finde ich die IML-Datei?
Cappuccino90
der gleiche Ordner, in dem sich Ihr build.gradle befindet ... höchstwahrscheinlich
Lukas Hanacek
1

Die Lösung ist einfach:

Gehen Sie zu File > Project Structure > appund wählen Sie die FlavoursRegisterkarte, wählen Sie API 21: Android 5.0 (Lollipop)in der Dropdown-Liste für Min Sdk Version.

Kural Manivannan
quelle
Danke, das funktioniert! Ich hatte den minSdkVersion-Wert auf einen viel niedrigeren Wert gesetzt, und das Zurücksetzen hat das Problem für mich behoben.
Arvindh Mani
1

In meinem Fall folgte ich allen Antworten, die ich auf Stackoverflow finden konnte, und keine von ihnen schien dieses Problem zu lösen. Alle Antworten würden auf eine mögliche Beschädigung der XML-Datei oder einen Konflikt mit Gradle-Namen hinweisen. In einigen Antworten wurde behauptet, dass das Projekt bereinigt oder das Projekt mit Gradle-Dateien synchronisiert werden müsste. Keine dieser Lösungen würde das Problem lösen. Nachdem ich einem Tutorial zum Erstellen einer Hello World-App gefolgt war und nur die Fenster des Android Studio-Assistenten ohne jegliche Codierung befolgt hatte, war es nicht sinnvoll zu vermuten, dass es sich um einen Tippfehler handelte.

TLDR

Das Problem stellte sich als Build Tools-Version heraus. Mein wurde auf 23.0.0 rc1 gesetzt , also habe ich es auf 22.0.1 geändert . Ich nehme an, das lag daran, dass ich die letzte verfügbare Version von Android Available verwende.

Um diesen Wert zu ändern, können Sie Ihren Projektbrowser im linken Fenster öffnen> mit der rechten Maustaste auf "App> Moduleinstellung öffnen" klicken und auf der Registerkarte "Eigenschaften" danach suchen.

Mauricio
quelle
1

Sie müssen Ihre Projekt-R-Datei IMPORTIEREN

import <YOUR-PROJECT-PACKGENAME>.R;
Joolah
quelle
1

Das Reinigen des Projekts hat in meinem Fall geholfen

Gehe zu

Build -> Clean Project
Ezio
quelle
1

Wenn Sie diesen Fehler erhalten, bereinigen Sie Ihr Projekt.

  1. Bauen Sie auf Ihrem Android-Studio auf
  2. Wählen Sie die Option Projekt bereinigen

Der Grund dafür ist, dass durch Bereinigen Ihrer vorherigen .apkDatei, die in Ihrem Android Studio-Projektordner auf Ihrem System vorhanden ist, gelöscht wird.

Saksham Agarwal
quelle
1

Kürzlich habe ich mein Projekt in Android Studio importiert. Ein Teil von R ist rot markiert mit der Fehlermeldung "Symbol R kann nicht aufgelöst werden", aber die Kompilierung ist erfolgreich und die Anwendung wird ausgeführt.

Entwicklung entwickeln:

  • IDE: Android Studio 3.1.2
  • System: Mac Os

Lösung:

Schritt 1:

Suchen Sie die Konfigurationsdatei für Android Studio.
Mein Pfad:

/Applications/Android Studio.app/Contents/bin/idea.properties

Schritt 2:

2500 ändern:

idea.max.intellisense.filesize=2500  

bis 5000 oder mehr:

idea.max.intellisense.filesize=5000  
Yu Zhang
quelle
Wie hast du das gedacht? Was heißt das?
Nikos Hidalgo
1
# Die IDE mit maximaler Dateigröße (Kilobyte) sollte Codeunterstützung für bieten. # Je größer die Datei, desto langsamer arbeitet der Editor und desto höher ist der # Gesamtspeicherbedarf des Systems, wenn die Codeunterstützung aktiviert ist. Entfernen Sie diese Eigenschaft oder setzen Sie sie auf eine sehr große Anzahl, wenn Sie # Code-Unterstützung für verfügbare Dateien benötigen, unabhängig von ihrer Größe. idea.max.intellisense.filesize = 2500
Yu Zhang
1

Sie müssen den Pfad ändern:

beispielsweise

import it.example.project.myproject.R;

verändern in

import it.example.project.R;

user2912087
quelle
0

Ich bin auf den gleichen Fehler gestoßen, es stellte sich heraus, dass die Manifestdatei einige Fehler hatte. Nachdem Sie das Problem behoben hatten, klickten Sie erneut auf Projekt erstellen. Es funktionierte einwandfrei. Android Studio gibt manchmal keine sehr hilfreichen Fehlermeldungen.

Strahl
quelle
0

Hin und wieder wird mir das gebissen, und es gibt noch etwas zu versuchen: Passen Sie Ihre compileSdk- und buildSdk-Versionen an die neuesten verfügbaren Versionen an.

Ich hatte meine compileSdkVersion von 21 auf 19 geändert, weil der Android Studio-Debugger (1.1 Canary Channel) nicht ordnungsgemäß in vorgefertigten Bibliotheken nachverfolgt wurde. Ich stellte fest, dass es sich anscheinend um eine Ablaufverfolgung basierend auf der buildToolsVersion (19.1.0) handelte, die ich durch Klicken auf einen Fehler in der Stapelverfolgung (und anschließende Auswahl von 19 anstelle von 21) überprüft habe. Obwohl ich es direkt in der Datei build.gradle geändert habe, finden Sie hier eine grafische Anleitung: https://www.blogger.com/comment.g?blogID=4722727826918942842&postID=3875998513888772255 und ich fasse zusammen:

  1. Android Studio IDE, wählen Sie Datei | Projektstruktur.
  2. Wählen Sie Ihr Modul wie "App"
  3. Wählen Sie im Feld SDK kompilieren die neueste Version aus
  4. Wählen Sie auch die neueste Version in Build Tools

Bestätigen Sie, und das Projekt sollte automatisch ordnungsgemäß synchronisiert werden.

Die Lehre, die ich daraus ziehen kann, ist, dass beide gleich sein sollten.

ǝɲǝɲbρɯͽ
quelle