R kann nicht behoben werden - Android-Fehler


1072

Ich habe gerade das neue Android SDK heruntergeladen und installiert. Ich wollte eine einfache Anwendung erstellen, um sie zu testen.

Der Assistent hat diesen Code erstellt:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

aber Eclipse gibt mir den Fehler

R kann nicht aufgelöst werden

online

setContentView(R.layout.main);

Warum?

PS: Ich habe eine XML-Datei mit dem Namen main.xmlunter res/layout/.


Für diejenigen, die immer noch Probleme mit Eclipse haben und R.java nicht aktualisieren / generieren können. Eine mögliche Lösung besteht darin, eine Dummy-XML zu erstellen und diese XML einfach zu löschen. In meinem Fall ist dies die Lösung
denil

Ehrlich gesagt klingt das so dumm (und ist es auch), aber das Ändern der Datei AndroidManifest.xml, das Rückgängigmachen dieser Bearbeitung und das Speichern der für mich funktionierenden Datei. Wenn ich das Projekt danach bereinigt habe, ist es wieder kaputt gegangen. Und die ganze Zeit dachte ich, Xcode sei die einzige IDE, die solche mysteriösen Fehler aufweist.
Ich wurde

3
Haben Sie versucht, mit der rechten Maustaste auf das Projekt zu klicken -> Android Tools -> Projekteinstellungen korrigieren?
Sergei

6
Bitte überprüfen Sie Ihre XMl-Layoutdatei. Wenn ein Fehler in XML vorliegt, können Sie R.java nicht generieren. Der Fehler tritt auch nach dem Aufblähen und Reinigen auf.
SwiftBoy

1
Nur ein Tipp: Als ich die IDE von Eclipse auf Android Studio umstellte, passierte mir das nicht mehr.
Mata

Antworten:


840

Nachdem ich auch dieses Problem aufgespürt hatte, fand ich diesen Hinweis in der Android-Dokumentation:

http://source.android.com/source/using-eclipse.html

* Hinweis: Eclipse fügt manchmal gerne eine "import android.R" -Anweisung oben in Ihre Dateien ein, die Ressourcen verwenden, insbesondere wenn Sie Eclipse bitten, Importe zu sortieren oder anderweitig zu verwalten. Dies führt dazu, dass Ihre Marke kaputt geht. Achten Sie auf diese fehlerhaften Importanweisungen und löschen Sie sie. *

Während ich die Android-Beispiel-Tutorials durchging, benutzte ich oft den Befehl Ctrl+ Shift+, Oum "Importe zu organisieren" und fehlende Importanweisungen zu generieren. Manchmal würde dies die falsche Importanweisung generieren, die die R.javaKlasse verbirgt , die beim Erstellen automatisch generiert wird.


32
Dies passiert auch, aber eine verpfuschte Layoutdatei kann dies auch verursachen.
GHz

113
Dieser klassische Fehler ist seit JAHREN in Eclipse und wird nie behoben. Tausende von Menschen stehen vor dem gleichen Problem.
Carol

52
Eclipse-Entwickler, bitte entfernen Sie diesen $ £% & "$ & / Bug! Google-Entwickler, bitte geben Sie mir eine £ $ & $"% & Android-Suite ähnlich wie Xcode für das iPhone!
Abramodj

18
@ 2-Stroker: Es ist ein Fehler. Es ist mir passiert, als ich über den Eclipse WIZARD ein neues andorid-Zweigprojekt erstellt habe und mich über "R kann nicht aufgelöst werden" beschwert habe. Ich musste die Zeilen setContentView & getMenuInflater auskommentieren und dann erzeugte Eclipse die R.java, wonach ich setContentView & getMenuInflator auskommentieren konnte. Abramodj hat recht, die Umgebung hat ernsthafte Probleme, wenn selbst Ihr Beispiel "Hallo Welt" nicht kompiliert wird. Repariere es google!
CF_Maintainer

5
Wie gewährt Google eclipse.org keine Mittel, um solche Probleme zu beheben?
Cris

391

Jedes Mal, wenn ein Problem mit R nicht generiert wurde oder sogar verschwand, lag dies an einem Problem in der XML-Layoutdatei, das die Erstellung der Anwendung verhinderte.


21
+1 dafür. Ich hatte eine ältere Datei styles.xml mit parent = "android: WindowTitleBackground" und sie hat meinen Build beschädigt und alles verhindert, was zu "gen" generiert wurde. Der Fehler wurde nur im Konsolenfenster gemeldet, als ich das Projekt zum ersten Mal öffnete.
Scott Persinger

12
Wenn Sie Layouts aus einem anderen Projekt kopiert haben und diese erhalten, suchen Sie nach fehlenden Zeichen - das wird sofort behoben!
Gabor

4
Ich glaube, ich habe das gleiche Problem. Gibt es eine Möglichkeit, eines der Layouts zu kennen?
Sergey Kucher

3
Ja, mir fehlte eine zeichnbare Datei, wodurch verhindert wurde, dass die R-Datei überhaupt generiert wurde. Das Seltsame ist, dass ich eine android:icon="@drawable/XXX"Deklaration für eine <item>in einer Menüressource hatte, aber es gab kein rotes Kringel, das signalisierte, dass die zeichnbare Ressource XXX nicht gefunden wurde. In anderen Fällen "@drawable/YYY" wurde markiert, wenn JJJ nicht gefunden wurde, aber in diesem Fall nicht. Aus irgendeinem Grund.
Taylor

5
Ja, ausgezeichnet zu lösen. Wenn dieser Fehler auftritt, werden häufig alle Layoutdateien als fehlerhaft markiert. Dies liegt daran, dass alle nach R suchen. Einer von ihnen weist jedoch wahrscheinlich einen Fehler auf, der nichts mit dem Build zu tun hat. In meinem Fall fehlt ein Drawable.
Todd Painton

201

Wann immer du bekommst

R kann nicht aufgelöst werden

Suchen Sie dann nach dem /resVerzeichnis, und es muss eine Datei vorhanden sein, die einen Fehler enthält und die die Erstellung der Anwendung verhindert. Beispielsweise kann es sich um eine Layoutdatei handeln oder um eine fehlende Ressource, die Sie jedoch bereits in der XML-Datei definiert haben.

Wenn Sie zusätzliche, sogar nicht verwendete (!) Oder nicht referenzierte (!) Bilder in einem Ordner wie res / drawables-mdpi haben, die nicht den Dateinamenskonventionen entsprechen (möglicherweise nur [a-z0-9_.] Enthalten), wird die Die R.java-Klasse wird möglicherweise nicht generiert, wodurch die Ereigniskette aller anderen Beiträge verursacht wird, auf die verwiesen wird. Ich hoffe es hilft!


Ich hatte dieses Problem mit dem Beispiel ApiDemos. Eine fehlende Ressource in der Datei strings.xml. XML-Fehler werden in der Eclipse-Konsole aufgelistet.
Lemotdit

Vielen Dank! Dies war mein Problem, ich hatte ein fehlerhaftes Layout, aber es gab keine Nachricht darüber.

29
Wie können Sie nach Fehlern suchen? Ich bekomme nichts in meiner Konsole beim Bauen / Laufen
Vincent

4
Wie finde ich heraus, WELCHE XML-Datei den Fehler verursacht? Eclipse markiert sie nicht!
Yar

1
Ich hatte 2 Bilder mit dem gleichen Namen im HDPI-Ordner (1 mit PNG und 1 mit JPG-Format). Das Löschen von 1 von ihnen löste das Problem
Haseeb Jadoon

134

Mein Projekt hat am Anfang eine r.java.at enthalten, R.layout.main funktioniert gut. Aber nach dem Hinzufügen von Code funktioniert es nicht und der Fehler ist, dass R.layout.main nicht behoben werden kann. Was ist das Problem? ?

Schauen Sie sich Ihre Importe an. Die Chancen stehen gut, dass die Linie:

import android.R;

wird da sein. Wenn dies der Fall ist, entfernen Sie es, damit Ihr Projekt R nicht mit der Standardklasse für Android-Ressourcen auflöst, sondern mit der automatisch aus Ihrem Ordner / res / generierten.


5
Danke @ Dimitar, das hat mein Problem behoben! Eclipse und die automatische Importfunktion haben mich anscheinend dazu gebracht, diese Importzeile automatisch hinzuzufügen.
Steven

7
Ich hatte auch ähnliche Probleme, als ich ein Layout mit Großbuchstaben benannte
Travis

Dies ist einer der Top 5 Gründe, warum Leute "R nicht gefunden" bekommen. Ich habe eine Problem- / Lösungsseite mit Bildern zusammengestellt, die die 5 wichtigsten unter dem folgenden Link zeigen. Ich hoffe wirklich, dass die Liste den Menschen hilft, da dies ein häufiges Problem ist. spragucm.wordpress.com/2014/05/13/…
Chris Sprague

Nach dem Entfernen von R wird R an einigen Stellen als Klasse verwendet und gibt jetzt einen Fehler aus. Wie kann das behoben werden?
Narendra Jaggi

96

Und noch etwas, das dieses Problem verursachen kann:

Ich habe das neue ADT installiert (Version 22). Es wurde keine genOrdner mehr erstellt, die Folgendes enthält R.java. Die Lösung bestand darin, auch neue Android SDK Build Tools vom Android SDK Manager zu installieren.

Lösung hier gefunden


Ich auch auch. Und als ich den SDK-Manager ausgewählt habe, werden die Build-Tools automatisch für die Installation überprüft, mit dem Hinweis, dass sie nicht installiert wurden! Was gibt???
David bei HotspotOffice

Ich hatte das gleiche Problem. Ich bin so froh, dass du das geteilt hast. Ich habe zwei Tage lang nach einem Fehler in meinem eigenen Code gesucht. Ich bin sehr enttäuscht von Google, da diese Fehlermeldung sehr schwer zu lösen war, aber durch einen eigenen Fehler verursacht wurde, obwohl Tools nicht richtig melden, was sie verursacht. Ich habe zur gleichen Zeit Änderungen an meinem Projekt vorgenommen, also dachte ich, es sei wieder meine Schuld.
Reijo Korhonen

5
Arbeitete für mich, danke! Es bekräftigt nur mein Mantra: "Aktualisiere niemals etwas während der Entwicklung".
Rodrigo Dias

Ich habe rumgehangen, um nach der Antwort zu suchen, aber nichts hat bei mir funktioniert. Ich denke, es war ein Eclipse- oder SDK-Problem. Wie Sie sagen, lösche ich einfach das vorherige Eclipse-Bundle und installiere es neu. und dann funktioniert es. Ihre Antwort wurde geholfen
Anfänger

Das war das Problem in meinem Fall! Verschwendete einen Tag damit, den R-Fehler zu beheben, Referenzen hinzuzufügen / zu entfernen und andere Optionen auszuprobieren. Meins war ein neues Setup von ADT und eine neue Android-Projekterstellung und bekam immer noch den Fehler. Es stellte sich schließlich heraus, dass ich alle verfügbaren Updates von Android SDK Tools, Android SDK Platform Tools und SDK Build Tools installieren musste: p
Saurabh Kumar

87

R.javaist eine Datei, die die Android Eclipse-Plugins beim Erstellen Ihrer Anwendung erstellen. R.javawird im Verzeichnis "gen" erstellt. Diese Datei wird aus den Informationen im Verzeichnis "res" generiert. Wenn Sie im Eclipse-Menü "Projekt" -> "Bereinigen ..." auswählen, wird die R.javaDatei entfernt und anschließend neu generiert .

Das Problem "R kann nicht gelöst werden" tritt auf, wenn Sie Ihren Paketnamen in der AndroidManifest.xmlDatei ändern . Es verwendet Ihren Android-Paketnamen, um ein Unterverzeichnis unter dem Verzeichnis "gen" zu erstellen, in dem die R.javaDatei gespeichert wird.

Eclipse kann Probleme beim Ausführen von Clean haben, da nicht klar ist, wo sich die R.javaDatei befindet, wenn Sie den Namen des Android-Pakets geändert haben. Sie können entweder das Unterverzeichnis unter umbenennen gen, um es an Ihren neuen Paketnamen anzupassen, oder Sie können Ihren Paketnamen wieder in den alten Namen ändern. Führen Sie die Reinigung durch und ändern Sie den Paketnamen in den gewünschten neuen Namen. Dies funktioniert am besten, wenn Sie Eclipse daran hindern, zu erstellen, während Sie den Paketnamen ändern. Deaktivieren Sie im Menü "Projekt" die Option "Automatisch erstellen" und deaktivieren Sie das Kontrollkästchen "Sofort erstellen", wenn im Dialogfeld "Bereinigen ..." gefragt wird, ob "Build sofort starten" soll, damit nicht versucht wird, während Sie Änderungen vornehmen der Paketname. Nachdem Sie den Namen geändert haben, können Sie "Automatisch erstellen" wieder aktivieren.

Beachten Sie, dass AndroidManifest.xmlEclipse automatisch ein "import <Ihr Android-Paketname> .R;" hinzufügt , wenn Ihr Dateipaketname nicht mit Ihrem Java-Paketnamen übereinstimmt. Zeile in all Ihren .javaDateien, die Verweise auf R enthalten. Wenn Sie Ihren AndroidManifest.xml Paketnamen ändern , aktualisiert Eclipse manchmal nicht alle diese hinzugefügten Importe. Verwenden Sie in diesem Fall das Eclipse-Refactoring ( ALT+ Shift+ R), um die Importanweisung in einer Ihrer Java-Dateien in Ihren neuen AndroidManifest.xmlPaketnamen zu ändern . Am besten tun Sie dies, während Sie "Automatisch erstellen" deaktiviert haben.


21
Dies sieht aus wie ein Ausschneiden und Einfügen ohne Referenz
Casebash

1
Das mehrfache Kopieren / Einfügen von Dateien und das Refactoring von Namen führen zu demselben Problem, obwohl alle Dateinamen und Inhalte in Ordnung waren. Das Bereinigen des Projekts, das manuelle Löschen von R.java und aller Import-Header sowie das erneute Erstellen dieser Import-Header (immer noch mit STRG + UMSCHALT + O) funktionierten einwandfrei.
Hornetbzz

Das hat bei mir funktioniert. Ich hatte den Paketnamen im Manifest geändert. Ich musste Strg-Umschalt-O in den Klassen verwenden, die auf die generierten R-Klassenwerte verwiesen, um den korrekten Import hinzuzufügen.
Chuck Krutsinger

Das hat es für mich behoben. Ich habe auch gesehen, dass das Importproblem in der Vergangenheit aufgetreten ist, aber dieses Mal war das Problem, dass der Paketname im Manifest nicht mit dem Paketnamen im Ordner src übereinstimmte.
Jim Range

Ich hatte zwei Aktivitäten in meiner Bewerbung. Einer hatte einen anderen Paketnamen als der, für den R generiert wurde. Ich musste R manuell mit so etwas wieimport com.example.main.package.name.R;
Oliver Moran

85

Was Will sagte, war richtig

R ist eine automatisch generierte Klasse, die die Konstanten enthält, mit denen Ihre> Ressourcen identifiziert werden. Wenn Sie keine R.java-Datei haben (dies wäre gen / eu.mauriziopz.gps / R.java in> Eclipse mit dem 1.5 SDK), würde ich empfehlen, Ihr Projekt zu schließen und erneut zu öffnen oder zu> Projekt> Alle erstellen zu gehen (und wählen Sie dort "Automatisch erstellen", wie von> Josef empfohlen). Wenn das nicht funktioniert, versuchen Sie, ein neues Projekt zu erstellen. Wenn das Problem neu erstellt wird, posten Sie es erneut und wir werden näher darauf eingehen.

aber ich habe herausgefunden, dass es ein anderes Problem gab, das das erste verursachte. Die Tools im SDK-Verzeichnis hatten nicht die Berechtigungen zum Ausführen, daher war es so, als ob die für Eclipse nicht vorhanden wären, sodass die R.javaDatei nicht erstellt wurde.

Das Ändern der Berechtigung und die Auswahl von "Automatisch erstellen" löste das Problem.


@ Jignesh - cd $ANDROID_SDK_ROOT/build-tools/<version>. Dann chmod a+xauf Dateien wie aapt, aidl, dexdump, dxetc. ANDROID_SDK_ROOTsollte gesetzt sein , in Ihrer Umgebung, und es wird auf Ihre SDK - Installation zeigen. Zum Beispiel /opt/android-sdk. Es ist wichtig, beide einzustellen ANDROID_SDK_ROOTund ANDROID_NDK_ROOTweil die Android-Tools sie intern verwenden. Siehe Empfohlenes NDK-Verzeichnis? auf der NDK-Benutzerliste.
Jww

@ Lewis .. Ich wähle bereits "Automatisch erstellen", aber der Fehler ist immer noch da.
d_unknown

39

R ist eine automatisch generierte Klasse, die die Konstanten enthält, mit denen Ihre Ressourcen identifiziert werden. Wenn Sie keine R.java-Datei haben (dies wäre gen / eu.mauriziopz.gps / R.java in Eclipse mit dem 1.5 SDK), würde ich empfehlen, Ihr Projekt zu schließen und erneut zu öffnen oder zu Projekt> Alle erstellen (und) zu wechseln Wählen Sie dort "Automatisch erstellen" (wie von Josef empfohlen). Wenn das nicht funktioniert, versuchen Sie, ein neues Projekt zu erstellen. Wenn das Problem neu erstellt wird, veröffentlichen Sie es erneut hier und wir werden näher darauf eingehen.


8
Das hat bei mir funktioniert, aber ich musste zuerst "Projekt -> Reinigen ...".
Matt Connolly

27

Schließen Sie alle Dateien, bereinigen Sie das Projekt und starten Sie Eclipse neu.


23
+1 Aber manchmal sind 3 Eclipse-Neustarts und 7 Projektbereinigungen dazwischen erforderlich. Versuche es einfach weiter ;-) #rant
Matthias Bauch

3
Mischen Sie es mit berührenden (Bearbeiten + Speichern) .xml-Dateien (strings.xml ...).
Ali Shakiba

24

Es lohnt sich einzuchecken AndroidManifest.xml. Das Attribut packagehat den richtigen Wert.

Das ist:

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

Nachdem Sie dies geändert haben, R.javawird das neu generiert.


Mein ursprünglicher Paketname war com.xxxxxdroid.router. Ich habe eine neue Version meiner App com.xxxxxdroid2.router erstellt. Nachdem ich dies getan hatte, musste ich den Paketnamen in AndroidManifest.xml aktualisieren, aber erst viel später, nachdem ich begonnen hatte, alte Klassen zu kopieren und einzufügen. Danke für den Zeiger!
Eugene van der Merwe

Dies hat mein Problem behoben. Ich habe in einer XML-Datei gearbeitet. Ich bin froh, dass ich mich an welche erinnert habe. Ich habe jede Menge davon ... Danke ...
GHz

19

Dieser Fehler kann auch durch Hinzufügen einer Aktivität zu einem Namespace verursacht werden, der sich vom Root-Namespace für Ihr Paket unterscheidet.

Wenn es sich beispielsweise com.example.myappum den Root-Namespace für Ihr Paket handelt, können Sie dem com.example.myapp.activitiesNamespace eine Aktivität hinzufügen .

Dies führt zu dem Fehler "R kann nicht gelöst werden".

Um den Import zu korrigieren, sollte das R im Standard-Namespace Ihrer Aktivität wie folgt lauten:

import com.example.myapp.R;

Dies half mir, ich hatte meine Aktivitäten in ein Paket unterhalb des Stammverzeichnisses verschoben und das Stammpaket als Import hinzugefügt (import com.example.myapp.R;), um das Problem zu lösen.
Eifersüchtiger

19

Stellen Sie zusammen mit den großartigen Vorschlägen in den vorherigen Antworten sicher, dass Ihr Android-Ziel festgelegt ist:

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt
  2. Wählen Sie Eigenschaften
  3. Wählen Sie im linken Menü Android
  4. Aktivieren Sie ein Kontrollkästchen neben dem entsprechenden Projekterstellungsziel.
  5. Klicken Sie auf Übernehmen und auf OK

Edit: Ein Jahr später fand ich eine andere Ursache. Ich hatte ein JPG-Bild in meinem Zeichenordner mit dem gleichen Namen wie ein PNG-Bild. Das Verweisen auf dieses Bild in meinem Code muss das Programm verwirrt haben und den Fehler "R kann nicht behoben werden" ergeben haben.


17

Stellen Sie sicher, dass Sie das Android Build Tool von SDK Manager installiert haben

Projekt Rechtsklick Eigenschaften-> Java BuildPath Wählen Sie Bibliothek und fügen Sie android-support.jar hinzu. Befolgen Sie diese Schritte.

Gehen Sie zu Projekt-> Eigenschaften-> Java-Erstellungspfad und wählen Sie die Registerkarte Reihenfolge und Export. Stellen Sie die überprüfte Android-Support-JAR-Bibliothek ein und platzieren Sie sie ganz oben in der Liste. Und sauber und wieder aufzubauen. Es funktioniert in den meisten Fällen

Geben Sie hier die Bildbeschreibung ein


15

Ich hatte dieses Problem gerade zum millionsten Mal und erkannte, was es verursachte: Ich erstellte eine XML-Datei mit Großbuchstaben im Namen. Alle Ihre XML-Dateinamen /resmüssen übereinstimmen [a-z0-9\\._].


Außerdem habe ich gerade bemerkt, dass der Stapelüberlauf erfordert, dass wir allen Backslashes entkommen.

14

Einfachste Lösung - Manchmal müssen Sie nur die XML-Datei speichern, an der Sie gearbeitet haben, damit der Autogenerator aktiviert wird.

Speichern Sie die Datei (z. B. main.xml), löschen Sie die R.java-Datei und prüfen Sie, ob die neu generierte R.java das R-Lösungsproblem behebt.


Wahr. Wenn in Ihrem XML-Code ein Problem vorliegt, bei dem dies nicht der Fall ist (rote, schnörkellose Linie oder gelbes Ausrufezeichen), löschen Sie manchmal die fehlerhafte Zeile, speichern Sie die XML-Datei, fügen Sie die Zeile wieder ein und speichern Sie sie erneut. Wenn Sie nicht automatisch erstellen, erstellen Sie danach erneut, und es könnte funktionieren. Eclipse ist manchmal dumm. :)
hotshot309

Trotz der anderen oben aufgeführten Antworten erwies sich diese als die richtige für mich. Ich habe anfangs die Meldung "APK kann nicht gefunden werden" erhalten, als ich einen Beispielcode kompiliert habe. Dann habe ich eine Bereinigung durchgeführt, die eine Menge Fehler "R kann nicht behoben werden" generiert hat. Dann habe ich einfach die XML-Datei geöffnet und die Fehler manuell gespeichert wurden gelöscht und ich konnte kompilieren.
sXe

Also wahr: Nach dem Bereinigen der Projekte war die R.java weg - das Bearbeiten und Speichern der Datei strings.xml löste das Problem.
BurninLeo

12

Überprüfen Sie die XML-Dateinamen. Stellen Sie sicher, dass sie alle in Kleinbuchstaben geschrieben sind.

Stellen Sie außerdem sicher, dass alle Bildressourcennamen auch alle in LOWER CASE enthalten sind. Ich hatte einen Großbuchstaben im Namen meiner JPG-Datei und er verursachte den ungelösten R-Fehler in meinem gesamten Projekt.


+1 dafür war mein Problem. Sie müssen Ihre Bilder wie folgt benennen: eicon.png nicht eIcon.png. Ich habe den Fehler beim Betrachten der Konsole gefunden. Es wurde ein Fehler in der Datei mit ungültigem Dateinamen zurückgegeben: ...
jasonflaherty


10

Dieser Fehler trat bei meiner x64 Linux Mint-Installation auf. Es stellte sich heraus, dass das Ergebnis ein Fehler in der ADBBinärdatei war, da das ia32-libsPaket nicht installiert war. Durch einfaches Ausführen apt-get install ia32-libsund Neustarten von Eclipse wurde der Fehler behoben.

Wenn Ihre x64-Distribution keine ia32-libs hat, müssen Sie Multiarch wählen.

Überprüfen Sie # 4 und # 5 in diesem Beitrag: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Hoffe das hilft jemandem.


Es ist erwähnenswert, dass Sie bei einer 64-Bit-Linux-Installation ia32-libs benötigen. Wenn Sie es nicht haben, führt der Versuch, den Befehl adb auszuführen, zu einer seltsamen Meldung, dass die Datei oder das Verzeichnis nicht gefunden werden kann.
rs_atl

10

Möglicherweise müssen Sie die SDK-Tools aktualisieren / installieren. Starten Sie den Android SDK-Manager erneut und installieren Sie ein neues Element: Android SDK Build-tools.one by one delete, korrigieren Sie, welches für Sie funktioniert.Geben Sie hier die Bildbeschreibung ein


9

Möglicherweise müssen Sie die SDK-Tools aktualisieren. Starten Sie den Android SDK Manager erneut und installieren Sie ein neues Element: Android SDK Build-Tools.

Geben Sie hier die Bildbeschreibung ein


8

Ich hatte auch dieses Problem. Es stellte sich heraus, dass ich versehentlich die Zeichenfolgenressource "app_name" aus der strings.xmlDatei gelöscht hatte , was einen stillen Fehler verursachte. Nachdem ich es wieder hinzugefügt hatte, wurde die R-Klasse erfolgreich generiert und alles war wieder betriebsbereit.


6

Versuchen Sie, den Namen Ihrer neuen XML-Layoutdatei in Kleinbuchstaben zu schreiben. Verwenden Sie zum Beispiel my_file.xmlanstelle von myFile.xml.


+1 JA! Stellen Sie sicher, dass die korrekten Namenskonventionen eingehalten werden ... [a-z0-9_.]
Jasonflaherty

6

Ein weiterer Grund, der R.javamöglicherweise nicht automatisch generiert wird , ist, wenn Sie Verzeichnisse wie res / drawable-hdpi , res / drawable-mdpi oder res / drawable-ldpi haben .

1.6+ scheint mit diesen Verzeichnissen in Ordnung zu sein, aber 1.5 will sie nicht. Als ich diese Verzeichnisse entfernte, R.javabegann ich erneut mit der automatischen Generierung.


6

Überprüfen Sie zunächst, ob ein XML-Layout fehlerhaft ist oder nicht, und beheben Sie ihn dann zuerst.

Entfernen Sie andernfalls die Junit-Abhängigkeit aus dem Projekt und erstellen Sie das Projekt neu.

Geben Sie hier die Bildbeschreibung ein


5

Dies liegt häufig an der MinSDK-Versionsnummer, die Sie beim Erstellen des Projekts angegeben haben. Beispiel:

Wenn Sie möchten, dass 2.1 das Minimum ist, ist Android 2.1 tatsächlich API Level 7.

Sie können sehen, wovon ich spreche, wenn Sie das heruntergeladene und installierte SDK durchsuchen. Navigieren Sie zu dem Ort, an dem Sie das SDK installiert haben ( C:\android-sdk-windowsz. B.), und öffnen Sie den Ordner "Plattformen". Sie sehen so etwas wie "android-7" als Ordner, und wenn Sie öffnen, dass es eine source.propertiesDatei gibt, die beim Öffnen mit einem Texteditor die entsprechende Plattformversion anzeigt.

Wenn Sie ein Projekt erstellen und eine "Build Target" -API auswählen müssen, zeigt die letzte Spalte in dieser Liste mit dem Namen "API Level" die Nummer an, nach der Sie suchen, wenn Sie die MinSDK-Einstellung auffüllen.

Dies ist wahrscheinlich einer der häufigsten Fehler, der dazu führt, dass die R.javaDatei nicht unter Projekt> gen> Paketname> R.java erstellt wird.


5

Entfernen main.out.xml. Ich bin neu in diesem Bereich und weiß noch nicht, wofür diese Datei verwendet wird, aber das Entfernen hat das Problem behoben.


5

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


4

Ich hatte die Beispiele für Android 8 und versuchte, das Android 7 SDK zu verwenden. Als ich das Projekt schloss und den Anwendungsordner erneut öffnete und mich für die Verwendung von Android 8 SDK entschied, konnte es die R-Datei finden. Hoffe das hilft.


4

In meinem Fall hatte ich einen Fehler in meinem AndroidManifest.xml. Andere haben gesagt, dass Ihre XML-Dateien fehlerfrei sein müssen, aber ich habe nur im Ordner res / gesucht. Suchen und beheben Sie so viele mögliche Fehler, dass sich das Problem möglicherweise von selbst löst.


Dies war der Schuldige in meinem Fall. JEDER Fehler in der Datei manifest.xml kann dieses Problem verursachen, wenn R.java noch nicht erstellt wurde.
Scott Biggs

4

Falls jemand interessiert ist (ich könnte hier Ihr Leben retten), hatte ich den Fehler, R.xmlkann nicht behoben werden, etwas anders bei einem GLS-Projekt. Hmmmm. Nachdem R.javaich reingeschaut hatte , fand ich eine automatisch generierte Klasse XML.java, (glaube ich) war nicht da.

Lösung? Es brauchte einen neuen Ordner in res: res\xmlund eine dort aufgerufene Datei default_values.xml . Dann war alles in Ordnung.

Nur für den Fall, dass Sie diese Datei nicht haben, ist es:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.