升级API 33后出现「意外资源类型dimen,期望string」设计器报错
问题详情
将build.gradle中的compileSdkVersion和targetSdkVersion从32升级至33(minSdkVersion为24)后,Android Studio设计器抛出报错:
unexpected resource type 'dimen' expected: string
该报错不影响App功能,但希望彻底消除。
涉及的dimen资源文件内容:
<resources> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
已尝试的操作:
- 临时将dimen改为string类型,报错消失,但不符合Android本地化规范,不可长期使用
- 回退API版本到32可解决,但不想放弃API33的适配
- 新建基于API33的空白项目,同样出现该报错
解决方案
清理缓存并重建项目
依次执行:Build > Clean Project→Build > Rebuild Project,再通过File > Invalidate Caches...选择Invalidate and Restart重启Android Studio,清除IDE缓存后可修复多数设计器识别异常。检查布局中的资源引用
确认所有布局文件中引用该dimen时使用的是@dimen/activity_horizontal_margin前缀,避免误写为@string/(即使资源文件本身正确,缓存异常也可能导致设计器误判引用类型)。更新Android Studio至最新稳定版
该问题属于Android Studio适配API33时的设计器bug,官方后续版本通常会修复这类兼容性问题,升级到最新稳定版即可解决。临时规避方案
若上述方法均无效,可暂时关闭设计器的实时预览功能,改用纯代码编写布局,待Studio版本更新后再恢复预览。
内容的提问来源于stack exchange,提问作者user19800063
相关产品推荐
相关产品推荐

