为什么删除id?
Why the ids are removed?
在我的 Android 项目中,我使用视图绑定:
buildFeatures {
dataBinding = true
viewBinding = true
}
理想情况下我只会使用 dataBinding
,但在这种情况下我总是需要使用标签
<layout ...> </layout>
在 XML 布局中使用它。这就是为什么我只在我真正需要在 XML 内绑定数据的地方使用它。在其他情况下,我使用 viewBinding
因为插件 'kotlin-android-extensions'
已被弃用。一切正常,但是当我运行Analyze -> Inspect code
时出现如下问题。一旦完成并找到一些未使用的资源(在 Android -> Lint -> Perfomance -> Unused resources
下)并且我删除了所有这些资源,因为我不需要它们,它还会删除分配给 XML 中所有视图的 ID。但是,XML 中带有标签 <layout ...> </layout>
的 ID 不会被删除。仅在使用 viewBinding
.
时删除 ID
我不是专家,但我认为,删除未使用的资源与 View
的 ID 没有任何关系,这不应该发生。
每次优化后(意味着从未使用的资源中清理项目)我总是必须分配 ID,这是非常低效的,尤其是当项目变大并且有更多 View
具有 ID 时。
为什么会发生这种情况,我该如何预防?
发生这种情况的原因可能是 lint 不知道您将在视图绑定中使用这些 ID...这是它应该知道的错误。你可以做的是,当你 运行 查找未使用资源的 lint 时,有一个选项你可以取消选中,该选项不会删除未使用的 ID。
.
在我的 Android 项目中,我使用视图绑定:
buildFeatures {
dataBinding = true
viewBinding = true
}
理想情况下我只会使用 dataBinding
,但在这种情况下我总是需要使用标签
<layout ...> </layout>
在 XML 布局中使用它。这就是为什么我只在我真正需要在 XML 内绑定数据的地方使用它。在其他情况下,我使用 viewBinding
因为插件 'kotlin-android-extensions'
已被弃用。一切正常,但是当我运行Analyze -> Inspect code
时出现如下问题。一旦完成并找到一些未使用的资源(在 Android -> Lint -> Perfomance -> Unused resources
下)并且我删除了所有这些资源,因为我不需要它们,它还会删除分配给 XML 中所有视图的 ID。但是,XML 中带有标签 <layout ...> </layout>
的 ID 不会被删除。仅在使用 viewBinding
.
我不是专家,但我认为,删除未使用的资源与 View
的 ID 没有任何关系,这不应该发生。
每次优化后(意味着从未使用的资源中清理项目)我总是必须分配 ID,这是非常低效的,尤其是当项目变大并且有更多 View
具有 ID 时。
为什么会发生这种情况,我该如何预防?
发生这种情况的原因可能是 lint 不知道您将在视图绑定中使用这些 ID...这是它应该知道的错误。你可以做的是,当你 运行 查找未使用资源的 lint 时,有一个选项你可以取消选中,该选项不会删除未使用的 ID。