Ich habe herausgefunden, dass mein R.java nie aktualisiert wird, daher enthält es keine Informationen zu meinen neuen Ressourcen. Daher habe ich beschlossen, es zu löschen, und dachte, dass Eclipse eine neue generieren würde. Aber das ist nicht passiert und ich habe jetzt kein R.java. Wie kann ich einen regenerieren?
Ich benutze Windows 7.
Aus einem der Kommentare: " Projekt ausführen -> Bereinigen hat das Problem für mich verursacht. Durch Bereinigen wird R.java gelöscht ... und aus irgendeinem Grund generiert das Plugin die Datei nicht neu."
android
eclipse
r.java-file
Peter Mortensen
quelle
quelle
Antworten:
Diese Seite schlägt vor:
...und...
Diese Seite schlägt eine andere Lösung vor.
quelle
R.java
, anstatt es neu zu generieren. stackoverflow.com/questions/13065425/…Ich fand das mit einem kaputten Layout und alles explodiert. Entspannen Sie sich, es ist wie dieser alte Fehler, als Sie das Programmieren von C gelernt haben, bei dem Sie ein Semikolon vergessen und es hundert Fehler erzeugt. Viele geraten in Panik, drücken alle Knöpfe und machen die Sache noch schlimmer.
Lösung
R.
Links nicht beschädigt sind. Beheben Sie alle Fehler in Ihren XML-Dateien . Wenn etwas in den ADKs defekt ist,R
wird es nicht regeneriert.import android.R
in Ihrer Aktivität erstellt haben, entfernen Sie es .Menu -> Project -> Build Project
.Was tun, wenn sich R nicht regeneriert?
Dies geschieht normalerweise, wenn Sie eine beschädigte XML-Datei haben.
/res/
Ordner/layout/
und/values/
, besonders wenn Sie kürzlich einen von ihnen geändert habenAndroidManifest.xml
. Ich finde, dass ich oft einen String ändere und vergesse, den String-Namen von zu ändernAndroidManifest.xml
.Android SDK Build-tools
installiert ist. Fenster -> Android SDK Manager -> Tools -> Android SDK Build-ToolsAndroid SDK Tools
und auch dasAndroid SDK Platform-tools
und aktualisierenAndroid ADK Build-tools
. Die Erstellung schlägt im Hintergrund fehl, wenn sie nicht übereinstimmen.quelle
Ich hatte das gleiche Problem. Beim Auschecken stellte ich fest, dass der Name der XML-Ressource im Layout nicht die richtige Namenskonvention hatte. Es hatte einige Großbuchstaben. Also habe ich es umbenannt, um alle Buchstaben in Kleinbuchstaben zu schreiben, und die Magie hat funktioniert.
quelle
Ein Grund, warum die R.class plötzlich verloren gehen kann, ist, wenn Ihre XML-Dateien Fehler enthalten. Zum Beispiel, wenn Sie eine XML-Datei mit Großbuchstaben im Namen wie myCoolLayout.xml hinzufügen, was nicht zulässig ist. Oder wenn Sie Referenzen haben, die nicht auf vorhandene Dateien usw. verweisen.
quelle
Wenn dies aus irgendeinem Grund nicht funktioniert: Stellen Sie sicher, dass Ihre layout.xml-Dateien keine Fehler enthalten. Eclipse scheint hier etwas fehlerhaft zu sein: Manchmal werden weder die Fehler im XML noch im Paket-Explorer markiert. In einem solchen Fall: Sehen Sie sich die Ansicht "Konsole" oder "Probleme" an, nachdem Sie "sauber" verwendet haben. Alle Fehler sollten dort angezeigt werden. Repariere sie und wiederhole eine saubere.
HINWEIS: Es ist NICHT erforderlich, die Fehler zu beheben, die aufgrund einer fehlenden R-Datei auftreten! Beheben Sie einfach die XML-Dateien und andere Projektfehler und verwenden Sie clean!
quelle
Schnelle Lösung:
Der Paketname im Manifest muss mit dem im
/src
Ordner/gen
übereinstimmen. Das Ordnerpaket wird automatisch reproduziert.Detaillierte Beobachtung:
Beachten Sie den Namen des Pakets im
/gen
Ordner. In meinem Fall war es anders als im/src
Ordner.Das Paket, auf das im Manifest verwiesen wird, war das des
/gen
Ordners.Ich habe versucht, ein Paket mit dem Namen des
/src
Ordners zum/gen
Ordner hinzuzufügen, um zu sehen, was passiert wäre, aber dies hat das Problem nicht gelöst. Ich entfernte dann den Paketnamen, der nicht mit dem Paketnamen des/src
Ordners übereinstimmte. Dieses Paket mit dem Namen, der nicht dem/src
Ordner entsprach, wurde neu erstellt, sobald ich es entfernt habe.Da die Paketreferenz im Manifest derjenigen entsprach, die sinnlos neu erstellt wurde und nicht mit dem Paket im
/src
Ordner übereinstimmte , wurde dies aufgefordert,package = "oldPackage"
mit dem umzubenennenpackage = "srcFolderPackage"
.quelle
Ich hatte das gleiche Problem und fand schließlich das Problem: In der Datei strings.xml habe ich die Zeile nicht beibehalten
<string name="app_name">program-name</string>
die beim Erstellen eines neuen Android-Projekts standardmäßig vorhanden ist . Ich dachte, es wurde nur für das Programm HelloWord verwendet, das das ursprüngliche Programm ist.Die AndroidManifest.xml verweist jedoch auf diesen Wert, daher:
=> Ein Kompilierungsfehler;
=> die R.java wird nicht aktualisiert;
=> ID werden nicht erkannt ...
quelle
Android hat im SDK-Build-Tool ADT 22 den Build-Mechanismus hinzugefügt. Sie müssen nur die folgenden Schritte ausführen.
Dies wird das Problem lösen.
quelle
Wenn Ihr R.java nicht generiert wird, besteht eine der Lösungen darin, die Layoutdatei mit dem Namen "blabla.out.xml" zu löschen.
Versuchen Sie nach dem Löschen dieser Datei, das Projekt über das Menü Projekt -> Bereinigen zu bereinigen .
quelle
Als Verallgemeinerung von Glaux Antwort, wenn Sie irgendwelche Fehler in dem
res
Verzeichnis, dann erzeugt R.java nicht - auch wenn Sie sauber und wieder aufzubauen. Beheben Sie diese Fehler zuerst.Beispiel: Wenn Sie eine Bilddatei mit dem Namen "myimage-2.jpg" hinzufügen, betrachtet das System dies als Fehler, da Dateinamen auf alphanumerische Werte beschränkt sind. Führen Sie nach dem Hinzufügen von Dateien eine Aktualisierung in Ihrem 'res'-Verzeichnis durch und überwachen Sie die Ausgabe in Ihrem Konsolenfenster auf Warnungen vor Dateinamen.
quelle
Wenn Ihr Betriebssystem Ubuntu ist, kann ich einige Vorschläge machen:
Installieren oder aktualisieren Sie ia32-lib:
Überprüfen Sie, ob Sie die richtige Berechtigung für den Ordner aapt haben:
Starten Sie Eclipse:
Führen Sie Project -> Clean in Eclipse aus
quelle
Sie haben zu 100% einen Fehler in einer XML-Datei , aber die XML-Überprüfung zeigt Ihnen den Fehler nicht an. Dies ist der Grund, warum Sie zuerst Ihre XML-Dateien überprüfen müssen!
quelle
Es ist IMMER hilfreich, einen Blick auf die Registerkarte Probleme in Eclipse zu werfen . In meinem Fall wurde die Fehlermeldung " Android kann Ziel 'Android-8' nicht beheben " angezeigt, die die Generierung von R.java verhinderte. Also habe ich das importierte Ziel auf das korrigiert , das ich in der Datei default.properties verwendet habe, und dann eine Bereinigung über Projects-> Clean and voila! R.java wird automatisch generiert! Ich hoffe es hilft!
quelle
Durch das Bereinigen des Projekts, das Schließen von Eclipse, das erneute Öffnen und das Starten meines Projekts wurde mein R.java endlich wieder angezeigt ... Ich hoffe, es hilft
quelle
Stellen Sie sicher, dass Sie nicht importieren
android.R;
quelle
R.java wird niemals generiert, wenn der
res
Ordner Fehler enthält . Im zeichnbaren Unterordner befinden sich beispielsweise zwei Dateien mit demselben Namen, eine ist icon.png und die andere ist icon.html.Im Protokollfenster der Eclipse-Konsole wird ein Fehler angezeigt, der besagt, dass das Symbol für den Ressourceneintrag bereits definiert ist. Nach dem Löschen von icon.html können Sie den
gen
Ordner bereinigen oder einfach löschen . Sie werden feststellen, dass R.java erstellt wurde.quelle
Ich habe festgestellt, dass jede Datei mit Großbuchstaben im
res
Ordner diesen Fehler verursacht. Dies geschah mir mit einer PNG- Datei, die ich hinzugefügt und vergessen hatte.quelle
Nachdem ich viele Beiträge und YouTube-Videos gelesen hatte, stellte ich fest, dass jeder von uns
R.java
aus verschiedenen Gründen vermisst wurde.So habe ich das in Eclipse behoben:
gen
Ordner und speichern Sie es.Die folgende Meldung wird angezeigt und Ihre Datei wird automatisch neu geschrieben:
quelle
Für mich hatte ich zweimal v7 appcompat verlinkt. Wie auch immer, klicken Sie in Eclipse mit der rechten Maustaste auf den Projektnamen im Paket-Explorer oder Navigator, gehen Sie zu Eigenschaften, Android und deaktivieren Sie alle Duplikate im Abschnitt Bibliothek. Möglicherweise müssen Sie anschließend Build -> Clean erstellen.
quelle
Es gibt offensichtlich keine endgültige Antwort darauf, aber hier ist eine andere, die ich hier noch nicht sehe:
Ich hatte
R.java
verschwinden nach (Versuch) ein Team synchronisieren, und es gab Konfliktlösung Dateien im Projekt (dhthingy.xml.mine
,thingy.xml.r35
usw.). Löschen / Lösen der Konflikte neu generiertR
.quelle
Ich hatte dieses Problem. Aus Versehen habe ich das gelöscht
Dies verursachte Build-Fehler im gesamten Projekt sowohl in meinen XML-Dateien als auch in meinen Java-Dateien. Sobald ich das, was ich gelöscht habe, erneut eingegeben habe, hat es wieder funktioniert :)
quelle
OK, es ist klar, dass es viele Ursachen für dieses Problem geben kann. Wenn Sie sich auf einem 64-Bit-Linux-Computer befinden und das ADT gerade zum ersten Mal einrichten, tritt möglicherweise dieses Problem auf, bei dem R nicht automatisch generiert wird. Überprüfen Sie die Registerkarte Konsole, und möglicherweise wird ein Fehler angezeigt, der dem folgenden ähnelt:
Wenn dies der Fall ist, müssen Sie ia32-libs installieren, indem Sie Folgendes verwenden:
Siehe hier für Details: Android adb nicht gefunden
quelle
Ich bin ein paar Mal auf dieses Problem gestoßen. Ich stellte fest, dass ich, wenn ich das Paket R nicht über den Namen meiner Anwendung importierte, z. B. wenn meine Anwendung den Paketnamen example.test hatte, example.test.R importieren musste, um auf eines der Elemente zugreifen zu können Ressourcen.
Wenn dies nicht importiert wurde, waren die Ressourcen, die zurückgegeben wurden, die Standardressourcen, von denen keine meine eigenen enthalten waren.
Wenn Sie jedoch feststellen, dass Sie nur eine Liste der Standardressourcen erhalten, überprüfen Sie einfach, ob Sie application_package_name.R und nicht android.R importieren.
quelle
Mein Problem war, dass
appcompat
es sich nicht im selben Verzeichnis wie mein Projekt befand.Das habe ich beim Kompilieren meiner App mit Ant herausgefunden .
quelle
Stellen Sie außerdem sicher, dass Sie über die neueste Version des ADT-Plugins verfügen, und öffnen Sie den Android SDK-Manager, um alle SDK-Tools auf die neueste Version zu aktualisieren. Suchen Sie auch in Eclipse selbst nach Updates. Nicht übereinstimmende Versionen haben das Problem für mich verursacht.
quelle
Mein Problem lag in einer Menüdatei. Der Compiler scheint Sie nicht zu warnen, wenn in Menüdateien auf Zeichenfolgen
strings.xml
verwiesen wird, die darin nicht vorhanden sind. Überprüfen Sie, ob Ihreitem
s in Ihrem Menü XML-Dateien auf Zeichenfolgen verweisen, die in Ihrem nicht vorhanden sindstrings.xml
. Normalerweise inandroid:title
.quelle
Für mich wurde dieser Fehler verursacht, als ich versuchte, ein vorhandenes zu duplizieren,
res/menu
anstatt eines mit dem zu erstellenwizard
.quelle
Alle diese Antworten könnten nicht funktionieren, wenn Sie Maven verwenden. Die Lösung für mich war hinzuzufügen
zum Konfigurationsabschnitt des Android-Maven-Plugins.
quelle
Ich habe eine Lösung gefunden, warum R.class nicht von Eclipse erstellt wird, nachdem es erneut erstellt wurde - 2 bereinigen, erstellen usw.
Das Problem ist hier in strings.xml:
Diese werden standardmäßig von Eclipse erstellt, wenn Sie Projekte erstellen.
Auf jeden Fall ändern Sie die Datei strings.xml für Ihre eigenen Anforderungen. Manchmal löschen Sie die string.xmls diese beiden Zeilen aus Ihrem Code:
Es liegt ein Problem in der Datei AndroidManifest.xml vor:
Es kann also nicht mit strings.xml kommunizieren.
quelle
Ich habe den Namen meiner Layout-XML-Datei geändert und später herausgefunden, dass sich die XML-Datei (in diesem Fall Widget-Anbieter) immer noch auf die alte Layout-XML bezieht, die nicht vorhanden ist und die automatische Generierung / Korrektur der R-Klasse verhindert.
quelle