修复关于 `layout_marginHorizo​​ntal` 的 android studio 警告

Posted

技术标签:

【中文标题】修复关于 `layout_marginHorizo​​ntal` 的 android studio 警告【英文标题】:Fix android studio warning about `layout_marginHorizontal` 【发布时间】:2018-08-21 04:27:23 【问题描述】:

我在我的 android 版本中收到了这些警告。

Warning:(19, 9) Attribute `layout_marginVertical` is only used in API level 26 and higher (current min is 24)
Warning:(20, 9) Attribute `layout_marginHorizontal` is only used in API level 26 and higher (current min is 24)

很明显,我们应用的布局使用了在 API 级别 26 中引入的 layout_marginVerticallayout_marginHorizontal 属性。警告听起来好像这些属性在 24 级设备上不起作用,但它们确实可以完美运行。我想了解为什么我会收到这些警告,尽管似乎没有任何问题。

一个明显的解决方案是使用“简写”:marginTopmarginBottom 而不是 marginVertical,但我希望尽可能继续使用这些“短”参数,以提高可读性并减少重复.

24 级的这些属性是否没有记录?还是有某种向后兼容性在起作用?如果是这样,为什么会发出警告?

我们正在使用:

<uses-sdk
    android:minSdkVersion="24"
    android:targetSdkVersion="26" />

更新:设置targetSdkVersion="24" 似乎可以修复警告,并且所需的边距继续有效。这解决了我的直接问题,但我对为什么 26 级功能在 24 级上起作用以及为什么以 26 级为目标会导致警告感到困惑。如果我想达到 26 级该怎么办?

【问题讨论】:

您知道为什么您的layout_marginHorizontal 可以在 26 之前的设备上运行吗?我现在有同样的“问题”。实际上,layout_marginHorizontal 甚至可以在 Android 4.4 上运行 @MaksimDmitriev 不,抱歉 - 从来没有想过要解决这个问题。如果你这样做,请告诉我! @aaaidan 我认为不建议降低您的targetSdkVersion。据我了解:android:minSdkVersion="min_sdk_version_required_to_install_the_app"android:targetSdkVersion="sdk_version_that_the_app_works_well"android:buildSdkVersion="latest_sdk_available"。正如您所提到的,android:layout_marginVertical 仍然具有一定的魔力。但是如果你想在不降低targetVersion的情况下摆脱警告,你可以使用tools:targetApi="26"tools:ignore="UnusedAttribute"来抑制警告。 @MaksimDmitriev 它工作的原因是 AAPT android.googlesource.com/platform/frameworks/base/+/master/… 【参考方案1】:

这个 API 似乎是在 API 级别 26 中引入的。 由于您可能正在使用 AppCompatActivity,也许他们还为 pre 26 SDK 引入了一些向后兼容性。

此外,您收到的警告可能只是 lint 检查错误。

【讨论】:

以上是关于修复关于 `layout_marginHorizo​​ntal` 的 android studio 警告的主要内容,如果未能解决你的问题,请参考以下文章

磁盘坏掉了??关于磁盘被破坏的一些简单修复

关于缺陷自动修复的一些思考

关于win7 下面 jlink 固件 修复

关于vmware启动提示无法修复的错误的问题

如何修复关于查询中非法字符的 URIException

关于ECSHOP中sql注入漏洞修复