Android Studio Build.VERSION_CODES.R 和 Window.getInsetsController() 丢失

Kam*_*m S 3 android gradle kotlin android-studio

我正在学习 udemy 上的课程,其中讲师要求使用以下代码。 显示讲师所需代码的图像

我尝试使用相同的代码,但遇到了多个错误。这是当我输入相同代码时 android studio 的样子。

我的代码

一、android studio无法识别该符号 Build.VERSION_CODES.R

当我将鼠标悬停在 android studio 中突出显示的文本上时,它会显示以下消息:

不必要的;SDK_INT 永远不会 < 21

这是没有意义的,因为首先Build.VERSION_CODES.R是 api 级别 30,而我的最低目标 api 是级别 21。其次,即使我SDK_INT不能低于 21。内部的版本代码Build.VERSION_CODES也不应该改变。

android studio 显示的下一个错误是它无法解决window.insetsController

未解决的参考:insetsController

Window如果我浏览android studio 内部类的源代码,我可以看到getInsetsControllerinsetsController字段应该包装的方法。我尝试直接使用该方法而不是 kotlin getter,并且 android studio 也无法识别该方法。

Android studio 显示找不到 Window.getInsetsController()

android studio找不到的另一个字段是WindowInsets.Type,我可以看到它存在于源代码中,但我无法访问它。

我的compileSdkVersion设置为29buildToolsVersion设置为"29.0.3"

如果有人知道发生了什么,如果您能回答,我们将不胜感激。我尝试创建一个新项目并尝试相同的代码,但错误仍然存​​在。也许我使用的sdk坏了?但我的sdk是android studio自带的,所以我不确定。最近,我将 android studio 从 4.0 更新到了 4.1,这可能是问题所在吗?

Com*_*are 6

我的compileSdkVersion设置为29

将其设置为30. Android R (Android 11) 的 API 级别为 30。

始终将您的compileSdkVersionAndroid 系统设置为最新的生产版本。