R kann nicht aufgelöst werden - Android Fehler
Habe ich gerade heruntergeladen und installiert ist das neue Android-SDK. Ich wollte eine einfache Anwendung, um zu testen, fahren Sie.
Der Assistent erstellt diesen code:
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 die Fehlermeldung
R nicht gelöst werden können
on line
setContentView(R.layout.main);
Warum?
PS: ich habe eine XML-Datei mit main.xml
unter res/layout/
.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem das aufspüren dieses problem auch, ich fand diesen Hinweis in der Android-Dokumentation:
http://source.android.com/source/using-eclipse.html
Während man die Android-Probe tutorials, würde ich oft nutzen Sie die Strg + Shift + O Befehl "Importe verwalten" und generieren fehlende import-Anweisungen. Manchmal erzeugt die falsche import-Anweisung, die verbergen würde die
R.java
- Klasse wird automatisch generiert, wenn Sie bauen.InformationsquelleAutor der Antwort
Jedes mal, wenn ich hatte ein problem mit R nicht generiert wurden oder sogar verschwanden, war dies aufgrund eines Problems in der XML-layout-Datei, der verhinderte, dass die Anwendung von gebaut.
InformationsquelleAutor der Antwort
Wenn man
dann überprüfen Sie für die
/res
Verzeichnis und es muss eine Datei, die einige Fehler drin sind und dass verhindert wird, dass die Anwendung von gebaut. Es kann zum Beispiel eine layout-Datei oder kann es aufgrund fehlender Ressourcen ist, sondern Sie bereits definiert in der XML-Datei.Wenn Sie weiteren, auch ungenutzten (!) oder referenzierte (!) Bilder in einen Ordner wie z.B. res/drawables-mdpi, die entsprechen nicht den Namenskonventionen (enthält nur [a-z0-9_.]), die R.java Klasse möglicherweise nicht erzeugen, wodurch die Kette der Ereignisse, die all die anderen Beiträge bezogen. Hoffe, es hilft!
InformationsquelleAutor der Antwort
Blick auf Ihre Importe. Die Chancen sind, dass Sie die Zeile:
wird da sein. Wenn das der Fall ist, entfernen Sie Sie, so dass Sie Ihr Projekt aufgelöst wird, die R nicht mit der Standard-Android-Ressourcen-Klasse, aber mit der automatisch erzeugte von Ihr /res/- Ordner.
InformationsquelleAutor der Antwort
Und eine andere Sache, die dieses problem verursachen könnten:
Installierte ich die neue ADT (v. 22). Es hielt erstellen
gen
- Ordner mitR.java
. Die Lösung war auch die Installation der neuen Android SDK Build-Tools aus dem Android SDK Manager.Lösung gefunden hier
InformationsquelleAutor der Antwort
R.java
ist eine Datei, die das Android-Eclipse-plugins erstellt, währendIhre Anwendung zu erstellen.
R.java
wird erstellt unter "gen"- Verzeichnis. Diese Datei wird generiert aus den Informationen in den "res" -
- Verzeichnis. Wenn Sie ausführen wählen Sie "Projekt" -> "Clean..." auf der Eclipse
Menü, wird es entfernen und dann neu erstellen, die
R.java
Datei.Des Problems "R kann nicht aufgelöst werden" passiert, wenn Sie ändern Ihre
Paket-Namen in der
AndroidManifest.xml
- Datei. Es verwendet Ihre Androidpackage-Namen, erstellen Sie ein Unterverzeichnis unter dem "gen" - Verzeichnis, wo
es speichert die
R.java
Datei.Eclipse möglicherweise Probleme beim ausführen reinigen, denn es ist verwirrt
wo die
R.java
Datei ist, wenn Sie geändert haben die Android-Paketname. Sie können entweder benennen Sie das Unterverzeichnis unter
gen
entsprechend Ihrerneue package-Namen, oder ändern Sie die package-Namen zurück zu den alten
name. Tun, die sauber und ändern Sie dann die Paket-Namen auf den neuen Namen
Sie wollen. Dies funktioniert am besten, wenn Sie aufhören Eclipse aus zu bauen versuchen
während der änderung der Paket-Namen. Unter dem Menü "Projekt"
deaktivieren Sie die option "Automatisch Erstellen" und auch, wenn der
"Sauber..." - dialog, der fragt, ob es sollte "Starten sofort bauen"
deaktivieren Sie das Kontrollkästchen, damit es nicht versuchen, zu bauen, während Sie die änderung der
package-Namen. Nachdem Sie Sie geändert haben, der name, den Sie drehen können "Bauen
Automatisch" wieder auf.
Beachten Sie, dass wenn Ihr
AndroidManifest.xml
- Datei package-name stimmt nicht übereinIhre Java-package-Namen, Eclipse wird am Ende automatisch hinzufügen
"import <Ihrem Android-package-name>.R;" - Zeile in alle Ihre
.java
Dateienhaben alle Verweise zu R. Wenn Sie Ihre
AndroidManifest.xml
package-Namen, manchmal Eclipse aktualisiert nicht alle diese Hinzugefügt
die Importe. Wenn das passiert, verwenden Sie die Eclipse-refactoring (ALT +
Shift + R) , Veränderung der import-Anweisung in einer Java-Dateien zu
Ihre neue
AndroidManifest.xml
Paket-Namen. Am besten ist es, dies zu tunwährend Sie deaktiviert haben, "Automatisch Erstellen".
InformationsquelleAutor der Antwort
Was er sagte, war Recht
aber ich habe herausgefunden, dass es war ein weiteres problem, das verursacht wurde und die erste. Die tools im SDK-Verzeichnis nicht über die Berechtigungen um ausgeführt zu werden, so war es wie die nicht existieren, für Eclipse, damit es nicht bauen die
R.java
Datei.So ändern Sie die Berechtigung und die Option "Automatisch Erstellen" hat das problem gelöst.
InformationsquelleAutor der Antwort
R ist eine automatisch generierte Klasse enthält die Konstanten, die zur Identifizierung Ihrer Ressourcen. Wenn Sie nicht über eine R.java Datei (es wäre gen/eu.mauriziopz.gps/R.java in Eclipse mit dem SDK 1.5) ich würde empfehlen, schließen und öffnen Sie Ihr Projekt an oder gehen zu Projekt - > Bauen Sie alle (und die Option "Automatisch Erstellen", während es, wie empfohlen, von Josef). Wenn das nicht funktioniert, als der Versuch, ein neues Projekt, wenn das problem ist neu, als hier wieder posten, und wir werden mehr ins detail gehen.
InformationsquelleAutor der Antwort
Schließen Sie alle Dateien, clean-Projekt, starten Sie Eclipse erneut.
InformationsquelleAutor der Antwort
Lohnt sich in
AndroidManifest.xml
. Das Attributpackage
hat den richtigen Wert.Ist:
Nachdem Sie das ändern, die
R.java
wird erneut generiert werden.InformationsquelleAutor der Antwort
Dieser Fehler kann auch verursacht werden, durch hinzufügen einer Aktivität zu einem Namensraum, der anders ist, der root-namespace für Ihr Paket.
Zum Beispiel, wenn
com.example.myapp
ist der root-namespace für Ihr Paket, können Sie fügen Sie dann eine Tätigkeit, diecom.example.myapp.activities
namespace.Dadurch wird das "R kann nicht aufgelöst werden" - Fehler.
Zu beheben, importieren Sie die R in der Standard-namespace in Ihrer Tätigkeit sollte sein:
InformationsquelleAutor der Antwort
Zusammen mit den tollen Anregungen in den vorherigen Antworten, stellen Sie sicher, dass Ihr Android-Ziel:
Edit: Ein Jahr später fand ich eine andere Ursache. Ich hatte eine .jpg-Bild in meinem drawable Ordner mit dem gleichen Namen wie eine .png-Bild. Verweisen auf dieses Bild in meinem code muss verwirrt das Programm, und es gab die "R kann nicht aufgelöst werden" - Fehler.
InformationsquelleAutor der Antwort
Stellen Sie sicher, dass Sie installiert die Android-build-Werkzeug form-sdk-manager
Projekt rechts klicken-Eigenschaften-> Java-BuildPath wählen Sie Bibliothek, und fügen Sie android-support.jar die Folgen dieser Schritt.
Gehen Sie zu Projekt->Eigenschaften->Java Build Path select -, Um-und export-Registerkarte. Setzen android-Unterstützung .jar-Bibliothek überprüft und bis es in der Liste ganz oben. Und zu reinigen und wieder aufzubauen..Es funktioniert für die meisten Fälle
InformationsquelleAutor der Antwort
Ich hatte gerade dieses problem zum millionsten mal und erkannte, was verursacht wurde: ich habe eine XML-Datei mit Großbuchstaben in den Namen. Alle Ihre XML-Dateinamen in
/res
müssen übereinstimmen[a-z0-9\\._]
.InformationsquelleAutor der Antwort
Einfachste Lösung - Manchmal braucht man nur zum speichern der XML-Datei, die Sie gearbeitet haben, um die autogenerator zu kick in.
Speichern Sie die Datei (z.B. main.xml), dann löschen Sie den R.java Datei und sehen, ob das regenerierte R.java löst das R-problem beheben.
InformationsquelleAutor der Antwort
R
ist eine generierte Klasse. Wenn Sie die Android Development Tools (ADT) es wird immer dann generiert, wenn das Projekt gebaut wird. Sie können "Automatisch Erstellen' deaktiviert.InformationsquelleAutor der Antwort
Überprüfen Sie die XML-Datei Namen. Werden Sie sicher, dass Sie sind alle in Kleinbuchstaben.
Stellen Sie außerdem sicher, dass jede Bild-Ressource-Namen sind auch alle in Kleinbuchstaben. Ich hatte einen Großbuchstaben im Namen meiner jpg-Datei, und es verursacht die R ungelöste Fehler quer über mein Projekt.
InformationsquelleAutor der Antwort
Dieser Fehler tauchte auf meinem x64 Linux Mint installation. Es stellte sich heraus, dass das Resultat war ein Fehler in der
ADB
binary, weil dieia32-libs
Paket war nicht installiert. Einfach laufenapt-get install ia32-libs
und der Wiederankurbelung der Eclipse den Fehler behoben.Wenn Ihr x64 Distribution nicht ia32-libs, du musst gehen Multiarch.
Check #4 und #5 zu diesem Beitrag:
http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883
Hoffe, das jemand hilft.
InformationsquelleAutor der Antwort
Müssen Sie möglicherweise zu aktualisieren SDK-tools. Relaunch Android-SDK-Manager erneut, und installieren Sie ein neues Element: Android SDK Build-tools.
InformationsquelleAutor der Antwort
Müssen Sie möglicherweise zu aktualisieren/installieren-SDK-Werkzeuge. Relaunch Android-SDK-Manager erneut, und installieren Sie ein neues Element: Android SDK Build-tools.eins nach dem anderen löschen,fixieren, der eine Arbeit für Sie.
InformationsquelleAutor der Antwort
Hatte ich dieses problem auch. Es stellte sich heraus, dass hatte ich versehentlich gelöscht, die "app_name" string-Ressource aus der
strings.xml
- Datei, die verursacht wurde eine silent-Fehler. Einmal fügte ich es wieder, der R-Klasse wurde erfolgreich generiert und alles war wieder einsatzbereit.InformationsquelleAutor der Antwort
Ersten check gibt es irgendwelche Fehler in irgendwelchen xml-layout oder nicht, wenn, dann beheben Sie es zuerst.
Andernfalls entfernen Sie junit-Abhängigkeit von Projekt und erstellen Sie das Projekt neu.
InformationsquelleAutor der Antwort
Versuchen Sie, Ihre neue XML-layout-Datei-Namen Kleinbuchstaben. Verwenden Sie zum Beispiel
my_file.xml
stattmyFile.xml
.InformationsquelleAutor der Antwort
Noch ein weiterer Grund
R.java
möglicherweise nicht erhalten, automatisch generierte, wenn Sie Verzeichnisse wie res/drawable-hdpires/drawable-mdpioder res/drawable-ldpi.1.6+ scheint OK zu sein mit diesen Verzeichnissen, aber 1.5 nicht haben wollen. Wenn ich entfernt die Verzeichnisse
R.java
begann autogenerating wieder für mich.InformationsquelleAutor der Antwort
Leider keiner der vorhandenen Fragen geholfen. Da mein problem scheint an eine bestimmte Plattform gebunden, dies kann nur funktionieren, wenn Sie auf Ubuntu 64 Bit (ich bin derzeit mit Ubuntu 12).
Auf den ersten ich nicht sehen, die "Probleme" Fenster", welches bereits angedeutet, eine Lösung, die auf 64-Bit-Umgebung benötigen Sie die 32-Bit libs, die fehlen dürfen:
Ich das Paket installiert wurde und neu erstellen mein Projekt, welches das Problem für mich.
InformationsquelleAutor der Antwort
starten Sie Ihren computer neu.
Nichts hat mir geholfen, außer diese Weise
InformationsquelleAutor der Antwort
Nur gehen, um die Android-Top-Menü-Liste. klicken Sie auf Bauen Menü unter Erstellen klicken Sie auf Projekt neu.
InformationsquelleAutor der Antwort
Hatte ich die Beispiele von Android-8 und versuchte zu verwenden-Android-7-SDK. Wenn ich das Projekt geschlossen und wieder geöffnet den Ordner der Anwendung auswählen und verwenden-Android-8-SDK, es war in der Lage, die R-Datei. Hoffe, das hilft.
InformationsquelleAutor der Antwort
In meinem Fall, ich hatte einen Fehler in meiner
AndroidManifest.xml
. Andere haben gesagt, dass Ihre XML-Dateien müssen frei von Fehlern, aber ich war nur auf der Suche im res/Ordner. Finden und beheben ebenso viele Fehler und kann das problem auch von selbst lösen.InformationsquelleAutor der Antwort
Oft ist dies, weil die MinSDK-version Nummer, die Sie angegeben, wenn Sie das Projekt erstellen. Beispiel:
Wenn Sie möchten, 2.1 der mindestens Android 2.1 ist eigentlich API-Ebene 7.
Können Sie sehen, was ich spreche, wenn Sie die SDK heruntergeladen und installiert. Navigieren Sie zu dem Ort, den Sie das SDK installiert (
C:\android-sdk-windows
zum Beispiel) und öffnen Sie den Ordner mit dem Namen "Plattformen". Sie werden sehen, so etwas wie "android-7" aufgeführt ist, wie ein Ordner, und wenn Sie öffnen, dass es einesource.properties
- Datei, die beim öffnen mit einem text-editor, zeigen Sie die entsprechende Plattform-version.Wenn Sie ein Projekt erstellen, und wählen Sie "Build Target" - API, die Letzte Spalte in dieser Liste mit dem Namen "API-Level" zeigt die Nummer, die Sie suchen, wenn das Auffüllen der MinSDK Einstellung.
Dies ist wahrscheinlich einer der häufigsten Fehler, dass die Ergebnisse in der
R.java
Datei nicht erstellt unter Projekt > gen > Paketname > R.java.InformationsquelleAutor der Antwort