2012-04-11 21 views
9

Ich versuche, einige einfache Einstellungen für eine Android-App einzurichten, kann aber diesen Fehler nicht beheben: "XML kann nicht aufgelöst werden oder ist kein Feld." Ich habe geputzt, aufgefrischt, Eclipse neu gestartet und die Jigg getanzt - aber ich kann den Fehler nicht abschütteln. Was mache ich falsch?R.xml.preferences kann nicht gefunden werden?

Die preferences.xml Datei:

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory 
     android:title="Dev options"> 

     <CheckBoxPreference 
      android:key="devtools" 
      android:title="Enable clearing user" 
      android:summary="Enable clearing user" /> 

    </PreferenceCategory> 

</PreferenceScreen> 

Die Java-Klasse-Datei:

package com.myapp.prototype; 

import android.os.Bundle; 
import android.preference.PreferenceFragment; 

public class GCPreferencesActivity extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Load preferences from XML resource 
     addPreferencesFromResource(R.xml.preferences); // error on this line ?? 
    } 
} 

Vielen Dank für jede Hilfe.

+4

Wo befindet sich Ihre Einstellungsdatei? Es sollte sein: '/res/xml/preferences.xml'. –

+6

und importieren Sie com.myapp.prototype.R; –

+0

Roger, danke. – gcl1

Antwort

16

Ich denke, Sie haben einen Import verpasst (wie Vincent in Kommentaren sagte). Sie sollten hinzufügen:

import com.myapp.prototype.R; 

Der Fehler erscheint auch, wenn Sie in Ihrem Code setzen:

import android.R; 

die verwirrend ist, weil R aufgelöst wird, aber hat kein Attribut, das Sie in der XML-Datei definiert (natürlich es ist nicht das gute R!).

+1

Ja, das habe ich nach Vincents Antwort über Kommentare gelöst. Ich hatte nur preferences.xml im falschen Verzeichnis (unter res/layout statt res/xml). Danke für das Follow-up. – gcl1

+0

Das gleiche Problem, die Import-Anweisung zu beheben und die Einstellungsdatei an Ort und Stelle zu setzen, hat den Trick nach http://developer.android.com/guide/topics/ui/settings.html#DefiningPrefs. –

4

Sie müssen einen Ordner in Ihrem res/ Verzeichnis haben, das res/xml genannt wird, und darin Ihre .xml Datei haben.

0

Für zukünftige Besucher: Ich hatte das gleiche Problem. Und eines der Videos, die ich von lynda.com durchging, sagte, dass der Ordner XML mit einer Datei name.xml erstellt wird, wenn wir keine haben. Aber es wird nicht so geschehen, wie es erklärt wurde. Ich musste manuell einen Ordner namens "XML" im Ordner "RES" erstellen und diese XML-Datei darunter ziehen und der Fehler verschwand.

0

Ich hatte das Problem, weil ich die XML aus einem anderen Projekt kopiert/eingefügt habe. Erstellen Sie das XML im Projekt mit Datei => Neu => Android XML und kopieren Sie dann den XML-Code aus dem anderen Projekt in das XML, das Sie gerade erstellt haben.

1

Dies ist eine alte Frage, aber meine Antwort kann für zukünftige Zuschauer hilfreich sein. Ich hatte das gleiche Problem, und es war, weil ich eine falsche R-Klasse eingeführt hatte:

import android.R 

Sie haben Ihr eigenes Projekt erzeugte R-Klasse importieren:

import your.full.package.name.R 

Und natürlich müssen Sie haben res/xml/preferences.xml Datei in Ihrem Projekt.

Verwandte Themen