Frage

Ich habe gerade heruntergeladen und installiert die neue Android SDK. Ich wollte eine einfache Anwendung erstellen, um es zu testen zu fahren.

Der Assistent 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);
    }
}

Eclipse- gibt mir den Fehler

  

R kann nicht aufgelöst werden

on line

setContentView(R.layout.main);

Warum?

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

.
War es hilfreich?

Lösung 7

Was Will sagte, war richtig

  

R ist eine automatisch generierte Klasse, die die Konstanten hält Ihre> Ressourcen zu identifizieren. Wenn Sie nicht über eine R.java-Datei (es wäre gen / eu.mauriziopz.gps / R.java in> sein Eclipse-mit dem 1.5 SDK) würde ich empfehlen, Schließen und erneuten Öffnen Ihres Projekts oder gehen> Projekt> alle bauen (und die Auswahl von „automatisch erstellen“, während es wie empfohlen von> Josef). Wenn das nicht funktioniert, als versuchen, ein neues Projekt zu machen, wenn das Problem als> post neu erstellt wird hier wieder und wir werden mehr ins Detail gehen.

, aber ich habe herausgefunden, dass es ein weiteres Problem, das die ersten wurde verursacht. Die Tools im SDK-Verzeichnis nicht über die Berechtigungen ausgeführt werden, so war es wie die nicht für Eclipse existieren, so hat es nicht die R.java-Datei erstellen.

So die Berechtigung ändern und "Build automatisch" löste das Problem der Auswahl.

Andere Tipps

Nachdem dieses Problem aufzuspüren als gut, fand ich diese Note in der Android-Dokumentation:

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

  

* Hinweis: Eclipse-mag manchmal einen „Import android.R“ hinzufügen Aussage bei der   Anfang Ihrer Dateien, die Ressourcen verwenden,   vor allem, wenn Sie Eclipse-fragen   sortieren oder sonst Importe verwalten. Diese   wird dazu führen, dass machen zu brechen. Aussehen   out für diesen fehlerhaften Import   Aussagen und löschen. *

Während durch die Android Probe Tutorials gehen, würde ich oft die Strg + Umschalttaste + O Befehl "Organisieren Import" und erzeugen alle fehlenden Import-Anweisungen. Manchmal würde erzeugen diese die falsche Import-Anweisung, die die R.java Klasse verstecken würde, die automatisch generiert wird, wenn Sie zu bauen.

Jedes Mal, wenn ich mit R ein Problem hatte nicht erzeugt worden ist, oder sogar verschwunden, dies in der XML-Layout-Datei zu einem gewissen Problem zurückzuführen ist, die die Anwendung verhindert gebaut.

Wenn Sie erhalten

  

R kann nicht aufgelöst werden

dann überprüfen Sie die /res Verzeichnis und es muss eine Datei sein, die einige Fehler in ihm haben, und das ist die Anwendung verhindert wird gebaut. Zum Beispiel kann es eine Layout-Datei sein oder es kann darauf zurückzuführen sein, einige fehlende Ressource ist, aber Sie definiert es bereits in der XML-Datei.

Wenn Sie irgendwelche zusätzlichen, noch nicht genutzten (!) Oder nicht referenzierte (!) Bilder in einem Ordner wie res / Drawables-MDPI, die auf die Dateinamenskonventionen nicht entsprechen (nur enthalten [a-z0-9_.] ), erzeugen die R.java Klasse vielleicht nicht, um die Kette von Ereignissen alle anderen Beiträge genannten verursacht. Hoffe, es hilft!

  

mein Projekt haben, gehören ein r.java.at Anfang R.layout.main gut.Aber arbeiten, nachdem er einige Code hinzufügen es nicht funktioniert, und der Fehler ist R.layout.main nicht behoben werden. was ist das Problem?

Sehen Sie sich Ihre Importe. Die Chancen stehen gut, dass die Zeile:

import android.R;

wird dort sein. Wenn das der Fall ist, entfernen Sie diese, so dass Ihr Projekt R nicht mit der Standard-Android-Ressourcen Klasse lösen wird, aber mit dem einem automatisch generierte von Ihren / res / Ordnern.

Und eine andere Sache, die dieses Problem verursachen können:

Ich installierte die neue ADT (v. 22). Er hielt gen Ordner zu erstellen, die R.java enthält. Die Lösung war auch neue Android SDK Tools von Android SDK-Manager Erstellen Sie installieren.

hier

R.java ist eine Datei, die Android Eclipse-Plugins erstellt, während Aufbau Ihrer Anwendung. R.java wird unter dem „gen“ erstellt Verzeichnis. Diese Datei wird von den Informationen in den „res“ erzeugt Verzeichnis. Wenn Sie laufen „Projekt“ wählen -> „Clean ...“ auf der Eclipse Menü, wird es entfernen und dann die R.java Datei regeneriert.

Das Problem „R kann nicht aufgelöst werden“ passiert, wenn Sie Ihre ändern Paketnamen in der AndroidManifest.xml Datei. Es nutzt Ihr Android Paketnamen ein Unterverzeichnis unter dem „gen“ Verzeichnis zu erstellen, in dem speichert er die R.java Datei.

kann Eclipse-Probleme sauber ausgeführt wird, weil sie verwirrt ist über wo die R.java Datei, wenn Sie das Android-Paket geändert haben Name. Sie können entweder das Unterverzeichnis unter gen benennen Sie passen neue Paketnamen, oder Sie können Ihren Paketnamen die alten ändern zurück Name. Haben die saubere und dann den Paketnamen in den neuen Namen ändern Sie wollen. Dies funktioniert am besten, wenn Sie Eclipse-stoppen versuchen, zu bauen während Sie die Paketnamen ändern. Unter dem Menü „Projekt“ Deaktivieren Sie die Option „Automatisch erstellen“ und auch wenn die „Clean ...“ Dialog fragt, ob es „sofort ein Build-Start“ sollte Deaktivieren Sie das Kontrollkästchen, damit es nicht zu bauen ist versuchen, während Sie das ändern Paketnamen. Nachdem Sie den Namen geändert haben Sie drehen können „Build Automatisch“wieder ein.

Beachten Sie, dass, wenn Ihr AndroidManifest.xml Dateipaketname nicht übereinstimmt Ihre Java-Paketnamen, werden Eclipse-automatisch am Ende des Hinzufügen eines "Import .R;" Linie in allen .java Dateien dass irgendwelche Hinweise auf R. Wenn Sie Ihren AndroidManifest.xml ändern Paketname, manchmal ist Eclipse-nicht alle diese hinzugefügt aktualisieren Importe. Wenn das passiert, verwenden Sie das Eclipse-Refactoring ( ALT + Umschalttaste + R ), um die Import-Anweisung in einer Ihrer Java-Dateien zu ändern Ihre neuen AndroidManifest.xml Paketnamen. Am besten ist es, dies zu tun während Sie deaktiviert "Automatisches Build" haben.

R ist eine automatisch generierte Klasse, die die Konstanten hält Ihre Ressourcen zu identifizieren. Wenn Sie nicht über eine R.java Datei (wäre es mit dem 1.5 SDK gen / eu.mauriziopz.gps / R.java in Eclipse sein) würde ich empfehlen, Schließen und Ihr Projekt Wiedereröffnung oder das Projekt gehen> Build alle (und Auswahl von „automatisch erstellen“, während es wie von Josef empfohlen). Wenn das nicht funktioniert, als versuchen, ein neues Projekt zu machen, wenn das Problem neu erstellt wird, als hier wieder posten und wir werden mehr ins Detail gehen.

Schließen Sie alle Dateien, sauber Projekt, starten Sie Eclipse-.

Es lohnt sich in AndroidManifest.xml überprüfen. Das Attribut package hat den richtigen Wert.

Das heißt:

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

Wenn Sie das ändern, wird die R.java neu generiert werden.

Dieser Fehler kann auch durch Hinzufügen einer Aktivität zu einem Namensraum verursacht werden, die an den Stammnamespace für Ihr Paket unterscheiden.

Zum Beispiel, wenn com.example.myapp der für Ihr Paket Root-Namespace ist, können Sie dann eine Aktivität auf den com.example.myapp.activities Namespace hinzuzufügen.

Dies wird produziert die „R kann nicht aufgelöst werden“ -Fehler.

den Import der R in dem Standard-Namespace in Ihrer Aktivität zu beheben sein sollte:

import com.example.myapp.R;

Neben den großen Vorschläge in den vorangegangenen Antworten, stellen Sie sicher, dass Ihr Android Ziel gesetzt:

  1. Rechtsklick auf das Projekt
  2. Wählen Sie Eigenschaften
  3. Wählen Sie Android im linken Menü
  4. Markieren Sie ein Feld neben dem entsprechenden Projekt Build-Target.
  5. Klicken Sie auf Übernehmen und OK

Edit: Ein Jahr später fand ich eine andere Ursache. Ich hatte ein .jpg Bild in meinem ziehbar Ordner mit dem gleichen Namen wie ein .png-Bild. Referenzierung dieses Bild in meinem Code muss das Programm verwechselt haben und es gab die „R kann nicht aufgelöst werden“ -Fehler.

Stellen Sie sicher, dass Sie den Android-Build-Tool Form sdk-Manager installiert

Projektrechtsklick Eigenschaften-> Java BuildPath Bibliothek auswählen und hinzufügen android-support.jar die diesem Schritt folgen.

Zum Ausbau-> Einstellungen-> Java Build Path als Auswahl Auftrag und Export-Registerkarte. Set android-Unterstützung .jar-Bibliothek geprüft und bis es in oben auf der Liste. Und sauber und rebuild..It funktioniert für die meisten der Fälle

eingeben Bild Beschreibung hier

Ich habe gerade dieses Problem zum millionsten Mal habe und erkennen, was es verursacht wurde: Ich habe eine XML-Datei mit Großbuchstaben im Namen. Alle XML-Dateinamen in /res müssen [a-z0-9\\._] entsprechen.

Einfachste Lösung -. Manchmal muss man nur die XML-Datei speichern müssen Sie arbeiten an den Autogenerator zu erhalten, um in Tritt

Speichern Sie die Datei (z main.xml), dann löschen Sie die R.java Datei und sehen, ob das regenerierte R.java das Problem R lösen löst.

R ist eine generierte Klasse. Wenn Sie die (ADT) wird generiert, wenn das Projekt wird gebaut. Möglicherweise müssen ‚Build automatisch‘ ausgeschaltet.

, um die XML-Dateinamen überprüfen. Stellen Sie sicher, dass sie alle in Klein sind.

Vergewissern Sie sich auch, dass alle Bildressourcennamen in Kleinbuchstaben auch alle. Ich hatte einen Großbuchstaben im Namen meiner jpg-Datei, und es verursacht die R ungelöste Fehler direkt über mein Projekt.

abgeschnitten Dieser Fehler auf meiner x64 Linux Mint Installation auf. Es stellte sich heraus, dass das Ergebnis ein Fehler in der ADB binären war, weil das ia32-libs Paket nicht installiert wurde. Einfach läuft apt-get install ia32-libs und die Neubelebung der Eclipse-den Fehler behoben.

Wenn Ihr x64-Distribution nicht ia32-libs haben, werden Sie Multiarch gehen.

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

Hoffe, das hilft jemand.

Sie müssen möglicherweise SDK-Tools aktualisieren / installieren. Neubelebung Android SDK Manager erneut und installieren Sie ein neues Objekt. Android SDK Build-tools.one von einem löschen, beheben, die eine Arbeit für Sie eingeben Bild Beschreibung hier

Möglicherweise müssen Sie SDK-Tools aktualisieren. Neubelebung Android SDK Manager erneut und installieren Sie ein neues Element: Android SDK Errichten-Tools.

eingeben Bild Beschreibung hier

Ich hatte dieses Problem auch. Es stellte sich heraus, dass ich hatte versehentlich die „app_name“ String-Ressource aus der strings.xml Datei gelöscht, die eine stille Fehler verursacht wurde. Sobald ich es wieder hinzugefügt wurde die R-Klasse generiert erfolgreich und alles war wieder zum Laufen.

Überprüfen Sie zunächst, ist es ein Fehler in einem der XML-Layout oder nicht, wenn es dann lösen zuerst.

Ansonsten junit Abhängigkeit von Projekt entfernen und das Projekt neu.

 image description hier

Versuchen Sie, neue XML-Layout Dateinamen Kleinbuchstaben zu machen. Verwenden Sie zum Beispiel my_file.xml statt myFile.xml.

Ein weiterer Grund R.java nicht automatisch generiert ist möglicherweise erhalten, wenn Sie Verzeichnisse wie res haben / ziehbar-hdpi , res / ziehbar-MDPI oder res / ziehbar -ldpi .

1.6+ scheinen mit diesen Verzeichnissen in Ordnung zu sein, aber 1,5 will sie nicht. Als ich diese Verzeichnisse entfernt, begann R.java wieder für mich autogenerating.

Gehen Sie einfach auf Android Top Menüliste. klicken Sie auf Erstellen Menü, in unter Übersetzungs, klicken Sie auf Projekt neu .

 image description hier

Ich hatte die Beispiele für Android 8 und versuchte Android 7 SDK zu verwenden. Als ich das Projekt geschlossen und wieder geöffnet, die Bewerbungsmappe und wählte Android 8 SDK zu verwenden, es war in der Lage, die R-Datei zu finden. Hoffe, das hilft.

In meinem Fall hatte ich einen Fehler in meinem AndroidManifest.xml. Andere haben gesagt, dass Ihre XML-Dateien fehlerfrei sein müssen, aber ich war nur in den res / Ordnern suchen. Finden und so viele mögliche Fehler beheben und das Problem kann auch lösen sich.

Oft ist dies, weil die MinSDK Versionsnummer Du geliefert wird, wenn das Projekt. Beispiel:

Wenn Sie 2.1 wollen das Minimum sein, Android 2.1 ist eigentlich API Ebene 7.

Sie können sehen, was ich rede, wenn Sie das SDK Sie heruntergeladen und installiert zu sehen. Navigieren Sie zu dem Ort, den Sie das SDK (C:\android-sdk-windows zum Beispiel) installiert und öffnen Sie den Ordner mit dem Namen „Plattformen“. Sie werden so etwas wie „android-7“ aufgeführt als Ordner sehen, und wenn Sie öffnen, dass es eine source.properties Datei ist, die, wenn sie mit einem Texteditor geöffnet, können Sie die entsprechende Plattform-Version zeigen.

Wenn Sie ein Projekt erstellen, und Sie müssen eine „Build Ziel“ API wählen, die letzte Spalte in dieser Liste mit dem Namen „API-Ebene“ zeigt die Zahl, die Sie suchen, wenn die MinSDK Einstellung bevölkern.

Dies ist wahrscheinlich eine der häufigsten Fehler, die in der R.java Datei führt nicht unter Projekt> gen erstellt werden> Paketname> R.java.

Entfernen main.out.xml. Ich bin neu in diesem und noch nicht wissen, was diese Datei für verwendet wird, aber das Entfernen sie das Problem gelöscht.

Leider keine der bestehenden Fragen geholfen. Da mein Problem plattformspezifische scheint, arbeiten kann dies nur, wenn Sie auf sind Ubuntu 64 Bit (ich derzeit benutze Ubuntu 12). Zuerst habe ich sehe die „Probleme“ Fenster nicht, die bereits eine Lösung angedeutet, dass auf 64-Bit-Umgebung, um die 32-Bit-Bibliotheken müssen, die möglicherweise fehlen:

  

sudo apt-get install ia32-libs

Ich installierte das Paket und den Wiederaufbau mein Projekt, das das Problem für mich festgelegt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top