Android Studio:解析XML错误和URI未注册

27
在我的项目中添加一个新的Activity后,编译布局时出现以下错误:

Gradle: 错误解析XML:未格式化(无效标记)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical" >

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_password"
        android:text="<password>"/>
</LinearLayout>
"http://schemas.android.com/apk/res/android"被标记为红色,悬停会弹出以下消息:URI未注册(设置|项目设置|模式和DTD)。我的设置>项目设置>模式和DTD如下所示:Settings>Project Settings>Schemas and DTDs我已经在这里找到了一些类似的问题,但没有什么能帮助我解决这个问题。我希望有人有想法... :) "

1
尝试移除 android:text="<password>",看看是否导致了问题。 - S.D.
2
"<password>"会导致问题。您必须转义尖括号。https://dev59.com/lW445IYBdhLWcg3wNXk_ - Simon
我在导入的模块中遇到了相同的问题。 - Ganesh Jogam
8个回答

18

我遇到了类似的问题,但是评论并没有帮助我解决这个问题。来自这个问题这个答案实际上解决了我的问题。

总结:

转到“文件 > 项目结构 > 模块”,点击“添加”,然后点击“android”和“应用/确定”。这应该可以解决任何遇到类似问题的人,但是这个问题的评论对你没什么帮助。


5
在到达模块后,要添加在哪个部分,我的意思是哪个区域?有很多部分。 - Vivek Pratap Singh
在添加“android”后,它显示“Android SDK未配置为模块或已损坏”的错误。有什么建议吗? - Digant

7
对我来说,问题出现在我为旧代码创建了自己的子文件夹时。
具体而言,当我把布局文件放到默认文件夹 "../res/drawable/" 之外,放到自己的子文件夹 "../res/drawable/backup" 中时,Android Studio 就会报错。

搞定了!谢谢!我把布局文件创建在res/layout文件夹的上一级文件夹里了! - Sudhanshu
请确保新文件夹,即使命名正确,也出现在build.gradle中,例如 android { sourceSets { main { res { srcDirs 'src/main/res/old/drawable', ..... ` - Marc Spraragen

3
我很长一段时间都遇到了同样的错误,但我在网上找到的所有答案都没有真正帮助到我,或者说我没有找到正确的方法。最终我发现了问题出在我命名目录的方式上。因此,我正在尝试为我的应用程序创建横向布局并将其命名为layout_land。这一直显示着URI未注册的错误。我只需要将目录名称改为layout-land即可解决问题。

总结:目录名称中不要使用下划线!


1

前往设置 > 语言和框架 > 模式和DTD,在此处添加您代码中使用的URI。


1
我的问题是为一些动画工作创建新的资源目录。这些文件是.xml格式的,我选择了"xml"文件类型。然后出现了这个问题。将文件类型更改为"values",问题就解决了。不知道为什么,有人能解释一下吗?我在iMac上使用Android Studio。

0
一些特殊字符在这里不允许使用。直接分配文本时需要警告。
android:text="value"

@从 get 中获取的字符串,然后避免警告

android:text="@string/hello"

res/values/strings.xml

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello!</string>
</resources>

0
对于我来说,这个问题已经解决了,当我在Android Studio上对我的项目结构进行了以下更改: 文件-> 项目结构 -> SDK位置 -> 启用“使用嵌入式JDK(推荐)”的复选标记。 希望这能帮助到某些人。

0

首先,在Android Studio中转到项目文件夹并检查您创建的任何文件夹。如果您自己创建了任何文件夹,它将显示此错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接