Android编写XML动画时duration属性引用系统资源报类型不兼容错误
错误原因
报错本质是Android资源引用的类型名大小写不规范触发的类型匹配失败:
- Android资源系统对类型名的大小写校验非常严格,所有资源类型的引用标识必须使用全小写格式
- 你代码中
android:duration属性的取值写为@android:Integer/config_mediumAnimTime,错将整型资源的类型名integer写为首字母大写的Integer,编译时系统无法把这个引用解析为整型值,和duration属性要求的整数参数类型不兼容,最终抛出对应报错。 - 补充说明:
config_mediumAnimTime是Android系统预置的标准中时长动画配置,本身是合法的整型值,完全适配duration属性的取值要求,不存在资源本身不适用的问题。
修复方法
把资源引用里的类型名改为全小写即可,修正后的完整动画XML代码如下:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromYDelta="100%p" android:toYDelta="0" /> </set>
日常编写Android资源引用时需要注意,所有资源类型标识(包括string、dimen、color、id、bool等)都必须使用全小写格式,首字母大写会直接导致资源解析失败,触发各类类型不匹配的编译错误。
内容的提问来源于stack exchange,提问作者Suleman Bajwa
相关产品推荐
相关产品推荐

