自定义布局参数报错Illegal char <:>,SDK32升33后失效
解决Android SDK 33升级后自定义属性资源编译错误
问题原因
升级到Android SDK 33后,资源编译器对自定义属性中的localization="suggested"属性处理逻辑发生变更,导致生成的资源路径出现非法字符:,触发编译异常。
修复步骤
移除自定义属性中的
localization属性
修改values/attrs.xml文件,删除placeHolder属性上的localization="suggested"配置:<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="RichTextLayout"> <attr name="placeHolder" format="string" /> <attr name="imageAspectRatio" format="string"/> <attr name="editorTextColor" format="color" /> <attr name="editorBackgroundColor" format="color" /> </declare-styleable> </resources>清理并重新构建项目
执行以下操作清除缓存并重新编译:- 在Android Studio中依次点击
Build->Clean Project,再点击Build->Rebuild Project - 或在终端运行命令:
./gradlew clean assembleDebug
- 在Android Studio中依次点击
补充排查点
如果移除localization属性后仍报错,可检查:
- 确保Gradle插件版本与SDK 33兼容(推荐使用7.4.0及以上版本)
- 排查项目其他资源文件是否存在类似不兼容属性或非法字符
内容的提问来源于stack exchange,提问作者Gulab Sagevadiya
相关产品推荐
相关产品推荐

