Ich bekomme das gefürchtete Paket R
nicht, es bringt mich um. Der Code ist in Ordnung. Ich habe Apps auf dem Markt, auf denen der Code ausgeführt wird.
Jetzt werden einfache webview
Anwendungen ausgeführt. o.0
R.string.app_name
ist mein Fehler main.xml
und string.xml
ist in Ordnung. Ich bin sooo verwirrt.
Ich habe eine ältere Version für "borrow"
einen Code erneut geöffnet und sie wurde überflutet. R. errors.
Ich habe eine Bereinigung durchgeführt und nichts geändert, außer dass der Import oben R.android
hinzugefügt wurde.
Ich habe sogar in Netbeans geladen und bekomme das Gleiche. Sauber funktioniert nicht. Kann ich die R.java
Datei selbst schreiben ?
Was ist das für ein R
Ding? ist nicht R
. soll entsprechenR.java
Antworten:
Für alle, die darauf gestoßen sind, habe ich die Namespace-Ordner umbenannt. Ich habe nur vergessen, auch AndroidManifest zu bearbeiten, und deshalb habe ich diesen Fehler erhalten.
Stellen Sie sicher, dass Sie dies ebenfalls überprüfen.
quelle
Um dies einfach zu machen:
Natürlich durch
your.app.package
Ihr App-Paket ersetzen .Entfernen Sie in allen Klassen, die R-Ressourcenreferenzen verwenden, alle anderen
import
mit.R
, zimport android.R;
quelle
phonegap platform remove android
undphonegap platform add android
TL; DR , wenn Sie den Fehler "Paket R existiert nicht" erhalten, sind mögliche Gründe
-> Beheben Sie XML-Fehler
R
Paket (siehepackage
Attribut in AndroidManifest.xml)-> Import
R
Klasse, zBimport com.example.android.R;
-> oder das entsprechende Paket in Ihrer Quelle verwenden, zB
package com.example.android;
-> oder ändern Paket Attribut in AndroidManifest.xml zu
<manifest xmlns:android="..." package="com.example.android" ...>
, wenn das entsprechendeR
IDs stammen aus den Systemressourcen-> nicht importieren
android.R
, sondern den fehlerhaften IDs voranstellenandroid.
, z. B.android.R.layout.simple_list_item_2
Sie können
android.R
natürlich importieren, anstatt die IDs vorangestellt zu haben, aber dann können Sie die Anwendungsklasse nicht mehr importierenR
und müssen die Anwendungs-IDs voranstellen, zcom.example.android.R.id.main_menu
.Die
R
Klasse wird automatisch aus den Ressourcen der Anwendung generiert. Es enthält dasid
s für diese Ressourcen und ist in dem Paket enthalten, das im<manifest>
Tag in der entsprechendenAndroidManifest.xml
Datei angegeben ist.Wenn die Ressourcen-XML-Dateien keine Fehler enthalten, wird die
R.java
Quelle in einem der folgenden Paket-Unterverzeichnisse generiertgen/
und kompiliert.R
Dasandroid
Paket enthält eine weitere Klasse . Dieseandroid.R
Klasse enthält einige verschachtelte Klassen, die wiederum enthaltenid
s und andere Werte für System - Ressourcen.Um eine Klasse in Java zu verwenden, müssen Sie die Klasse mit dem gesamten Paket benennen, z
oder importieren Sie die Klasse und verwenden Sie sie dann ohne Paket
Sie können eine Klasse auch verwenden, ohne das Paket zu benennen, wenn sich sowohl die aktuelle Klasse als auch die verwendete Klasse im selben Paket befinden, z
quelle
Versuchen Sie niemals, die R-Klasse selbst zu schreiben!
Haben Sie die richtige R-Klasse in Ihre Dateien importiert?
Tun
anstatt
scheint das Problem für viele Menschen zu sein. Nach dem Reinigen und Bauen importieren meine Klassen manchmal die falsche.
quelle
Wenn Sie in Android Studio entwickeln und den Paketnamen umgestalten, sollten Sie den Paketnamen in Android Manifest und App Gradle-Datei ändern.
und in Manifestdatei
quelle
R.java ist eine automatisch generierte Datei. Sie wird normalerweise nicht kompiliert, wenn Sie Fehler in der XML-Datei haben.
Nein Sie können keine eigene R.java-Datei schreiben, diese muss vom Ressourcen-Compiler generiert werden.
Überprüfen Sie alle Ihre XML-Dateien auf Fehler.
quelle
Die R-Klasse ist Java-Code, der automatisch aus Ihren XML-Dateien generiert wird (UI-Layout, Internationalisierungszeichenfolgen usw.). Wenn der Code zuvor funktioniert hat (wie es scheint), müssen Sie Ihre IDE anweisen, diese Dateien irgendwie neu zu generieren ::
quelle
Ich nehme an, es hat früher funktioniert, aber jetzt nicht mehr.
Dies kann passieren, wenn Sie den PACKAGE-Namen in Ihrer MANIFEST-Datei ändern
Wenn Sie den Paketnamen ändern möchten
quelle
com.example.rickydam.txtbooks
aufcom.txtbooks.txtbooks
geändert, indem ich ein neues Projekt erstellt habe, und ich habe alles auf das neue Projekt verschoben, aber es konnte R nicht finden. Ich habe versucht, Caches ungültig zu machen, mit gradle zu synchronisieren, das Projekt zu bereinigen, das Projekt neu zu erstellen und SDK-Tools neu zu installieren ... nichts hat funktioniert! Aber Ihre Lösung hat mein Problem behoben! Danke noch einmal! Codiere weiter!Ich bin gerade auf diesen Fehler gestoßen, als ich mit Bazel eine Android-App erstellt habe:
Stellen Sie sicher, dass Ihr
android_library
/android_binary
einAndroidManifest.xml
mit dem richtigenpackage=
Attribut verwendet, und wenn Sie dascustom_package
Attribut fürandroid_library
oder verwendenandroid_binary
, stellen Sie sicher, dass es richtig geschrieben ist.quelle
Import löschen android.R; aus allen Dateien .. einmal das Projekt bereinigen und das Projekt erstellen .... Es wird generiert
quelle
Beispiel: Mein Paket ist com.example.mypc.f01. Um einen Fehler zu beheben, fügen Sie der Aktivität folgende Zeile hinzu:
import com.example.mypc.f01.R;
quelle
Im Folgenden finden Sie einige Techniken, mit denen Sie diesen Fehler beheben können: -
quelle
In meinem Fall wurde mir klar, dass ich im Projekt mehrere Pakete erstellt habe. Im Android-Manifest stellte ich fest, dass der Anbietername fälschlicherweise den Wert von MyContentProvider anstelle von .provider.MyContentProvider enthielt. Mein Hauptpaket (mit der Benutzeroberfläche) war co.companyname.database.provider anstelle von co.companyname.database.
Dann habe ich bei den Importanweisungen für die betroffene Klasse einfach mit der rechten Maustaste geklickt und Android Studio (0.8.6) gebeten, meine Importanweisungen zu optimieren. Ich habe auch festgestellt, dass Sie, wenn Sie in der AS-Suchleiste in der oberen rechten Ecke der IDE nach .R suchen, eine automatisch generierte R.java-Datei finden, die Teil Ihres Pakets ist. An dieser Stelle müssen Sie nichts ändern. Studio sollte das Projekt reparieren, nachdem Sie die Android Manifest-Datei korrigiert und neu erstellt haben.
Ein weiteres Element ist, dass ich in einer Klasse den toString (). Length () verwendet habe, um eine Zeichenfolge auszuwerten, diese jedoch gegen TextUtils.IsEmpty (stringVal) ausgetauscht habe. Ich kann mir nichts anderes vorstellen, was ich getan habe, um das Problem zu lösen.
Hoffe das hilft jemandem.
NB - All dies ist mit AS 0.8.6
PS
R.java wird automatisch generiert. Lesen Sie daher den Header: / * AUTO-GENERATED FILE. NICHT ÄNDERN. * * Diese Klasse wurde vom * aapt-Tool automatisch aus den gefundenen Ressourcendaten generiert. Es * sollte nicht von Hand geändert werden. * /
quelle
Als ich dies erlebte, erstellte ich ein neues Projekt und kopierte die Dateien von meinem alten Projekt in mein neues.
Ich hatte jedoch immer noch das gleiche Problem:
R does not exist
. Dann wurde mir klar, dass ich Manifest von meinem Notizblock in Android Studio-Manifeste kopiert und eingefügt hatte und den Paketnamen in der Manifestdatei nicht geändert hatte.Nachdem ich den Paketnamen im Manifest in den neuen Projektnamen geändert hatte, funktionierte das neue Projekt, das ich erstellt hatte, einwandfrei.
quelle
Welche Dateien importieren Sie in die Dateien, bei denen der R-Fehler auftritt?
Nach meinem Verständnis der R-Datei werden automatisch Referenzlisten für alle Attribute in der Android-App generiert. Daher können Sie es nicht selbst ändern.
Verwenden Sie Eclipse, um dieses Projekt zu erstellen? Wurden diese Fehler bei älteren Projekten vor der Aktualisierung von Eclipse gemacht? Welche Referenzen erhalten Fehler?
Stellen Sie sicher, dass Sie keine andere R-Datei aus einem anderen kopierten Code in einer anderen App importiert haben.
quelle
Dieses Problem tritt jedes Mal auf, wenn ich den Computer wechsle und versuche, alte Projekte aus Dateien zu importieren, die über USB übertragen wurden.
Meine Problemumgehung besteht darin, einfach ein neues Projekt zu erstellen und die Dateien in die IDE (derzeit mit Netbeans) zu kopieren (zu ziehen) und neu zu erstellen. Dies ist ein Ärger und eine etwas hackige Lösung, aber es behebt das Problem.
In diesem Fall müssen Sie möglicherweise Ihre Dateien sichern, das Projekt löschen und die Dateien einfach hineinziehen und neu kompilieren. Hoffentlich kommt es nicht dazu, aber das wäre Ihre nukleare Option.
quelle
Sie können es versuchen
Android Studio-Hauptmenü> Datei> Caches ungültig machen / neu starten ...
Klicken Sie auf die Schaltfläche Cache / Neustart ungültig machen, um Ihr Projekt neu zu starten
Lösen Sie R.xxxx.xxx erneut auf, wenn einige der Fragmentklassen der R-Klasse nicht ordnungsgemäß aufgelöst wurden
Erstellen Sie dann Ihr Projekt neu
Ich hoffe es hilft
quelle
Wenn dieser Fehler in Android Studio auftritt:
Überprüfen Sie die Einstellung (en) des Gradle-Moduls -> defaultConfig -> applicationId.
Überprüfen Sie das Tag "AndroidManifest.xml -> Manifest-Paket".
Überprüfen Sie die Paketdeklarationen in allen src-Java-Dateien.
Synchronisieren, bereinigen und dann mit Gradle neu erstellen.
Erstellen Sie NIEMALS Ihre eigene R-Datei. R wird automatisch aus Ihren Java-Quelldateien und Build-Einstellungen generiert.
quelle
Ich hatte: "Fehler: Paket R existiert nicht" und nahm an, dass javac keinen Zugriff auf R.java hatte.
Also habe ich% PROJ_LOC% \ gen an den Quellpfad angehängt und es hat funktioniert! SOURCEPATH =% PROJ_LOC% \ src;% PROJ_LOC% \ gen
Ich verwende kein Android Studio oder Ant (oder XML).
quelle
Wenn dieser Fehler nach dem Lösen von Zusammenführungskonflikten auftritt, kann ein einfaches Build -> Clean-Projekt hilfreich sein.
quelle
Ich habe gerade den Fehler in meinem Projekt beseitigt. Ich hatte ein Beispielprojekt importiert, die Paketordner geändert, aber das Paket in einer der Java-Dateien nicht aktualisiert.
Die wahrscheinlichste Ursache für diesen Fehler "Paket R existiert nicht" ist, dass der Paketname in Java oder in der Manifestdatei falsch ist. Stellen Sie sicher, dass es korrekt und synchron ist, und führen Sie dann einen sauberen Build durch.
quelle
Manchmal wird es gelöst, wenn Sie das Projekt einfach erneut in Android Studio importieren.
quelle
Falscher Pfad: Das Projekt "kassiert" die Zeiger auf die Bilder und wenn Sie Namensänderungen am Pfad vorgenommen haben, z. B. Refactored-Paket oder Ordner. Dann schreiben Sie einfach den R-Buchstaben noch einmal und der Editor schlägt den richtigen Weg vor und es wird funktionieren. In diesem Fall sind Ihre Dateinamen richtig und der Inhalt, auf den im R.-Zeiger verwiesen wird, ist vorhanden, aber der Pfad ist falsch. Daher funktionieren Clean und Build nicht.
quelle
Ein weiterer Fall von R.- Bruch ist die Verarbeitung von Anmerkungen .
Einige Verarbeitungen können sich auf Klassen beziehen, die sich in bestimmten Ordnern oder Ordnerebenen befinden. Wenn Sie die erforderlichen Klassen an einen anderen Ort verschieben, können Sie R. als unbekannte Klasse erhalten.
Leider ist der Fehlerzeiger auf dieses Problem in Android Studio nicht erkennbar.
quelle
Es hat keinen Vorteil, R.java selbst zu schreiben, da es bei jedem Build geändert wird.
Denken Sie daran, R.something zu verwenden, zum Beispiel: R.raw.filename aus Klassen, deren Paketwert dem Paketwert in AndroidManifest.xml ähnelt
Da R. Ressourcen-IDs für die aktuelle Anwendung oder Bibliothek definiert sind und alle überprüft werden, ob sie zur Kompilierungszeit vorhanden sind, ist es nicht sinnvoll, den Zugriff auf sie über "Code" zu ermöglichen, der nicht auf die aktuelle Anwendung oder Bibliothek abzielt und dies kann an anderen Orten verwendet werden.
quelle
Ich habe vergessen, den "Namen" meines "Pakets" oben in meiner Java-Klasse hinzuzufügen. Überprüfen Sie, ob Ihre tatsächlich hinzugefügt wurde.
quelle
Ich löse mein Problem:
.
Gehe zur
AndroidManifest.xml
Datei und ändere dieminSDKVersion="17"
von 19quelle