You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

drawable导入图片后遇Error:(3) error错误的含义及解决方法

解决 "Error:(3) error: not well-formed (invalid token)" 问题

嘿,这个问题我帮不少开发者排查过,本质就是drawable文件夹里的某个XML资源文件犯了语法错误——编译器解析到第3行时,发现了不符合XML规范的内容,比如非法字符、未闭合标签、拼写错误之类的。别慌,按下面的步骤一步步来就能搞定:

排查与解决步骤

  • 先锁定出错的文件:仔细看错误提示的完整信息,它会明确告诉你是哪个XML文件的第3行出问题(比如res/drawable/button_selector.xml),别只盯着行号忽略文件名。
  • 检查第3行的细节
    • 有没有用XML禁止的特殊字符?比如直接写&<这类符号,必须转义(比如&要写成&amp;);
    • 标签是不是没闭合?比如写了<shape>却漏了</shape>,或者标签嵌套逻辑混乱;
    • 属性值有没有加引号?比如android:color=#FF0000这种写法就错了,得改成android:color="#FF0000"
    • 有没有拼写或标点错误?比如把android:strokeWidth写成android:strokewidth,或者不小心用了中文引号;
  • 检查文件名合规性:如果是刚新增的XML文件,文件名不能有空格、特殊字符(比如!@#)或大写字母,Android要求资源文件名只能用小写字母、数字、下划线或点号,比如card_bg.xml才是正确格式;
  • 用IDE帮忙校验:Android Studio里右键出错的XML文件,选择Validate,IDE会直接标出具体的语法问题;
  • 排除图片的特殊情况:如果所有XML都没问题,试试移除刚上传的图片,看错误是否消失——极少数情况下,损坏的图片或Android不支持的格式(比如特殊编码的WebP)也可能触发奇怪的错误,但这种情况很少见。

举个常见的错误例子:
错误写法(第3行颜色值没加引号):

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="8dp" />
    <solid android:color=#FF4081 />
</shape>

修正后(给颜色值加上引号):

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="8dp" />
    <solid android:color="#FF4081" />
</shape>

这样错误就会消失啦。

内容的提问来源于stack exchange,提问作者fallen mcmullan

火山引擎 最新活动