为什么 id 被删除?

Mar*_*phi 3 android android-studio android-databinding android-viewbinding

在我的 Android 项目中,我使用视图绑定:

buildFeatures {
     dataBinding = true
     viewBinding = true
}
Run Code Online (Sandbox Code Playgroud)

理想情况下我只会使用dataBinding,但在这种情况下我总是需要使用标签

<layout ...> </layout>
Run Code Online (Sandbox Code Playgroud)

在 XML 布局中以使用它。这就是为什么我只在真正需要在 XML 中绑定数据的地方使用它。在其他情况下,我会使用viewBinding该插件,因为该插件'kotlin-android-extensions'已被弃用。一切正常,但是运行时出现以下问题Analyze -> Inspect code。完成后,会发现一些未使用的资源(在 下Android -> Lint -> Perfomance -> Unused resources),并且我会删除所有这些资源,因为我不需要它们,它还会删除为 XML 中的所有视图分配的 ID。但是,带有标签的 XML 中的 ID<layout ...> </layout>不会被删除。仅在使用时才会删除 ID viewBinding

我不是专家,但我认为删除未使用的资源与 s 的 ID 没有任何关系View,并且这种情况不应该发生。

每次优化之后(意味着清理未使用的资源中的项目),我总是必须分配 ID,这是非常低效的,特别是当项目变得更大并且有更多的ViewID 时。

为什么会发生这种情况以及如何防止这种情况发生?

Som*_*mar 5

发生这种情况可能是因为 lint 不知道您将在视图绑定中使用这些 ID...这是它应该知道的错误。您可以做的是,当您运行 lint 来查找未使用的资源时,您可以取消选中一个选项,该选项不会删除未使用的 ID。

未使用的资源对话框