我正在尝试为Android应用设置一些简单的首选项,但无法解决此错误:“xml无法解析或不是字段。”我已经清理,刷新,重启日食,并跳过跳汰机 - 但我不能动摇错误。我做错了什么?
preferences.xml文件:
<?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>
java类文件:
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 ??
}
}
感谢您的帮助。
答案 0 :(得分:15)
我认为你错过了一次导入(正如文森特在评论中所说)。你应该添加:
import com.myapp.prototype.R;
如果您输入代码,也会出现错误:
import android.R;
这令人困惑,因为R已经解析但没有您在XML文件中定义的属性(当然,它不是好的R!)。
答案 1 :(得分:4)
您的res/
目录中必须有一个名为res/xml
的文件夹,其中包含.xml
个文件。
答案 2 :(得分:0)
对于未来的访客: 我有同样的问题。我从lynda.com看到的一个视频说,如果我们没有文件名,那么将使用文件name.xml创建文件夹XML。但它的确是按照解释的方式发生的。我不得不在“RES”文件夹下手动创建一个名为“XML”的文件夹,并在其下拖动该xml文件,错误消失。
答案 3 :(得分:0)
我遇到了问题,因为我从另一个项目中复制/粘贴了xml。使用File =&gt; new =&gt; Android xml在项目中创建xml,然后将xml代码从其他项目复制粘贴到刚刚创建的xml中。
答案 4 :(得分:0)
这是一个老问题,但我的回答对未来的观众有帮助。我遇到了同样的问题,因为我导入了一个错误的R类:
import android.R
您必须导入自己项目生成的R类:
import your.full.package.name.R
当然,您需要在项目中使用res / xml / preferences.xml文件。
答案 5 :(得分:0)
好吧,对于那些即使在导入您自己的资源文件后仍然出现此错误的人,在我的情况下,我只是将我的项目与Gradle Files同步,它自动解决了该问题。
在Android Studio中点击
文件->使用成绩文件同步项目
希望有帮助!