【问题标题】:Why AndroidStudio shows warning "Namespace declaration is never used"?为什么 AndroidStudio 显示警告“从未使用过命名空间声明”?
【发布时间】:2013-11-30 23:09:45
【问题描述】:

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
</LinearLayout>

取自android official training

在第二行,AndroidStudio 显示以下警告:

Namespace declaration is never used

为什么会这样?

谢谢。

【问题讨论】:

  • 未使用工具命名空间的说法是完全正确的,但我不知道为什么解析器选择将此报告为警告,因为未使用的命名空间通常没有害处。
  • 是的,但我认为拥有一个未使用的命名空间就像拥有一个未使用的变量或方法。所以默认情况下 ide 会警告不必要的代码。
  • 好吧,警告是见仁见智的问题,但是太多的 XML 生成过程会产生带有冗余名称空间的 XML,在我看来,警告它们的工具会变得非常烦人。此外,您不能自动检测命名空间声明是多余的;它可能仅用于(如在 XSLT 中)声明 QNames-in-content 使用的前缀。
  • 你怎么说,“警告是见仁见智”。在我看来,ide 会警告未使用的东西是一件好事,即使在 xml 中也是如此。

标签: android xml android-layout xml-namespaces


【解决方案1】:

这是因为您没有在您的 xml 中实际声明的 tools 命名空间。

查看android 命名空间,该命名空间有3 个元素,但tools 没有。

命名空间 tools (http://schemas.android.com/tools) 用于 GUI 设计器,不用于在 Android 设备上运行应用,因此您可以安全地删除它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2015-02-01
    • 2011-01-14
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多