这个非常蛋疼的问题遇到很多次了,AndroidStudio升级compileSdk33后无xml提示。挺久前写一个调研demo时发现了这个问题,但因为那会任务重,也没有去深入研究,就在写代码时用target32,写完打包demo时修改为33,但这终究不是办法。
一、事情的起因
可能看我博客多的朋友都知道我的文章都是原创的,一般都是我在工作中遇到了什么问题,然后按照网上绝大多数的说法不好解决,那么我会写一篇文章整理一下。所以,这篇文章我也是讲一下我的小故事。
事情的起因是这样的:我今天写一个小demo,又遇到了这个问题。我的Android Studio版本默认使用的Gradle版本是7.2.1,build.gradle默认的compileSdk和targetSdk均为32。我快速写完代码,run一下又发现报错如下:
但这次我的demo可能不是那么简单,可能需要多次去开发和修改。所以,再按照原来的处理方式,即写代码用compileSdk32,编译改为compileSdk33的方式显然有些不太那么合适了。那么,出现这个问题的原因是什么呢?有没有什么一劳永逸的方式呢?
二、解决方式
临时的解决方案就是降低compileSdk的版本,也就是比如我刚才那种很low的方案,当然我那是最low的,只适合写一个demo就看效果不改来改去的。但是,你不能就每次都这样做吧。那原因是什么呢?
有人说可能是Android Studio对33的支持还不够,缺少Sources for Android 33,但实际上我的Android Studio是有的。
但我觉得可能是Android Studio低版本的Bug,毕竟33是2022年2月份才发布的预览版,而我的Android Studio是2021年的版本。所以,我先升级下AS看看:
升级完后,确实没有问题了,设置target33后,xml里面输入id,会有提示。
另外,从外网也找到了该问题:https://issuetracker.google.com/issues/241460885
好的,以上就是对该问题的总结。由此可见,软件更新迭代过程中,确实可能存在一些兼容性问题,即使是Google这种一线公司也无法避免。