【问题标题】:MissingConstraints lint error when using Flow使用 Flow 时 MissingConstraints lint 错误
【发布时间】:2020-09-01 20:48:50
【问题描述】:

我正在使用最近发布的约束布局版本 2.0,他们添加了一个名为 Flow 的新功能,它基本上取代了过去的线性布局(具有更多自定义)。但是 android lint 阻止了我的 CI 构建,因为它认为视图缺少约束。为这些视图中的每一个抑制这种 lint 错误似乎是一个 B 计划,所以我想问是否有一种方法可以独立于 Gradle 的其他组件更新 lint。

目前正在运行:

  • Gradle = 6.1.1
  • AndroidGradlePlugin = 4.0.1
  • Kotlin = 1.4

【问题讨论】:

  • 您可以将tools:ignore="MissingConstraints" 添加到 ConstraintLayout 以禁止其所有子级的警告。这将影响 Flow 的元素以及所有其他元素,因此它不是一个完美的解决方案。如果确实不需要约束,则确实需要更新 Lint 以抑制对 Flow 成员的此警告。
  • 是的,我最终这样做了。您还可以在项目的根目录下定义lint.xml 文件以忽略某些路径。让我们等到他们更新 lint。

标签: android android-constraintlayout lint android-lint


【解决方案1】:

确保app:constraint_referenced_ids 属性中的 ids 值之间没有空格,所以如果你有例如这个:

app:constraint_referenced_ids="view_1, view_2, view_3"

你应该把它改写成:

app:constraint_referenced_ids="view_1,view_2,view_3"

您也可以通过将tools:ignore="MissingConstraints" 设置为特定视图或通过为父级ConstraintLayout 设置该属性来抑制所有视图的此类警告,但不建议这样做。

【讨论】:

  • 这是一个老问题。它已经修复了,这不是我遇到的问题。
  • 没问题,希望我的回答能帮助遇到同样问题的人
【解决方案2】:

他们刚刚在 Android Studio 4.1 RC3 https://issuetracker.google.com/issues/79995034 中修复了它

【讨论】:

  • 当您使用 gradle lint 命令 (gradlew :app:lint) 时,即使 Android Gradle 插件 4.2.0-beta04 也不起作用。我也在那个问题中添加了这个评论
  • Android Studio 4.1.2 中没有修复。 IssueTracker 线程中的This 评论暗示它已针对 Android Studio 4.2 修复。我会等待 Android Studio 4.2 的稳定版本再试一次,我会暂时保留我的 tools:ignore="MissingConstraints" 声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2019-08-28
  • 2021-02-10
  • 1970-01-01
相关资源
最近更新 更多