android:name 是 vector 中路径的唯一引用标识,大小写敏感且不可重复,必须与 animated-vector 中 target 的 android:name 完全一致,否则动画静默失效;漏写或拼错将导致动画无法触发。

vector 中 android:name 是给路径起的“代号”,不是 ID 也不是 class
它纯粹是为动画(比如 AnimatedVectorDrawable)里引用路径用的。系统不校验重名,也不自动绑定;你写错名字,动画就找不到路径,静默失败——连警告都没有。
-
android:name必须和android:toName/android:fromName完全一致(大小写敏感) - 同一个
vector里不能有两个同名path,否则动画行为未定义(实测多数情况只生效第一个) - 名字里别用空格、中文、特殊符号,只推荐字母、数字、下划线,例如
ic_arrow_head、ring_path
动画 XML 里引用路径名时,必须和 vector 中声明的一致
很多人在 animated-vector.xml 里写错名字,结果 path 动不起来,但日志完全没提示。关键点在于:动画文件里 target 的 android:name 值,必须字面匹配 vector 文件中 path 的 android:name。
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android">
<target android:name="arrow_head" <!-- ← 这里必须等于 vector 里 path 的 android:name -->
<animation android:propertyName="pathData" ... />
</target>
</animated-vector>- 检查方式:把 vector 和 animated-vector 并排打开,Ctrl+F 搜名字,确认拼写、大小写、下划线位置一模一样
- Android Studio 不会高亮这种不匹配,也不能跳转,纯靠人工核对
- 如果 vector 里没写
android:name,动画 target 就永远找不到它——哪怕你只有一条 path
vector 里漏写 android:name 是最常被忽略的硬伤
很多设计师导出的 SVG 转 vector 后,path 标签只有 android:pathData,压根没 android:name。这时候无论动画怎么写,都无效。
- 不是所有工具(如 Android Studio 的 Vector Asset Studio)会自动生成
android:name,尤其从 SVG 导入时几乎都不加 - 手动补的时候,别只改一个
path,要确保所有需要动画的路径都有且仅有唯一名字 - 命名建议带语义,比如
checkmark_stem、checkmark_tick,方便后续维护和多人协作
多个 path 动画顺序依赖名字,但系统不保证执行顺序
如果你在同一个 animated-vector 里定义了多个 target,它们的执行顺序只取决于 XML 中的书写顺序,和 android:name 字母序无关。但名字一旦重复或拼错,就可能让某个 target 被跳过,导致你以为“顺序乱了”,其实是根本没加载。
- 调试技巧:临时删掉其他
target,只留一个,确认它能动;再逐个加回来 - 注意
pathData动画对路径结构敏感——起点/终点数量、命令类型(M/L/C)必须前后一致,否则动画会卡住或变形,和android:name无关但常被误判 - 真正在意顺序和同步性时,优先考虑拆成多个独立
AnimatedVectorDrawable+ 代码控制,比堆在一个 XML 里更可控
名字这东西看着小,但它卡在 vector 和动画之间的唯一接口上——没它,动画找不到路;写错它,动画直接失联。最麻烦的是,它不报错、不警告、不提示,只能靠人眼一行行对。










