【问题标题】:Android activity Binary XML file line : You must supply a layout_width attributeAndroid 活动二进制 XML 文件行:您必须提供 layout_width 属性
【发布时间】:2013-06-08 11:23:44
【问题描述】:

我已经读过它了,但它仍然在这里。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".TaskEditActivity" >

所以,java.lang.RuntimeException: Binary XML file line #34: You must supply a layout_width attribute. 例外

属性在那里,架构也...... 解决方案?

【问题讨论】:

  • 清理并重建?并发布整个布局
  • 我确信您的布局中的一个子视图将缺少布局宽度属性。请交叉检查,,
  • 你能发布你的整个 XML 文件吗?

标签: android android-layout


【解决方案1】:

我还建议检查您的尺寸。你可能有尺寸的布局宽度,你去它,你有像“150”而不是“150dp”(缺少dp)的值也会导致这个(这是我的情况)

【讨论】:

  • 我的宽度以尺寸为单位,但一切都在那里并且正确,而且偶尔会发生,但并非总是如此
  • 谢谢你拯救了我的一天。我花了 2 天时间寻找这个错误
  • 感谢您的意见。很难找到仅运行时的错误,也很难注意到。
【解决方案2】:

对我来说,在我的一个 layout.xml 文件中,我有

<ImageView
    android:id="@+id/row_1_col_0"
    android:layout_width="@string/default_picture_size"
    android:layout_height="@string/default_picture_size"
    android:layout_weight="1"
    android:background="@drawable/tile"
    android:onClick="mClickMethod" >
</ImageView>

在strings.xml里面,我有 包装内容

所以它在 Android Studio 中显示了这个:

<ImageView
    android:id="@+id/row_1_col_0"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/tile"
    android:onClick="mClickMethod" >
</ImageView>

我认为一切都会正常运行,因为没有错误并且应用程序已编译并运行。但是,有一个运行时错误说我没有设置 layout_width。

一旦我将 layout_width 和 layout_height 更改为:

android:layout_width="@string/default_picture_size"
android:layout_height="@string/default_picture_size"

android:layout_width="wrap_content"
android:layout_height="wrap_content"

一切正常。

【讨论】:

    【解决方案3】:

    如果您在片段/活动上应用或不应用正确的主题,就会发生这种情况。

    例如,Leanback 的OnboardingSupportFragment 需要Theme.Leanback.Onboarding,您必须将其应用于清单android:theme="@style/Theme.Leanback.Onboarding" 或覆盖onProvideTheme() 的片段中的活动

    @Override
    public int onProvideTheme() {
        return R.style.Theme_Leanback_Onboarding;
    }
    

    【讨论】:

      【解决方案4】:

      我有一个给定宽度的尺寸,但它不存在于默认的 dimens.xml

      res/
         values-w320dp/
                dimens.xml -> ring_radius=5dp
         values/
                dimens.xml -> missing ring_radius
      

      【讨论】:

      • 您在哪个设备上看到了这个?
      • 你看到的是哪个设备?这不是很奇怪,而且与最小宽度配置完全矛盾。它应该从 320 dp 正确选择。
      【解决方案5】:

      很清楚。子元素错过了layout_width 属性。

      【讨论】:

        【解决方案6】:

        你的问题不在于这个布局元素,它在内部,看看第 34 行。还有另一个用户界面元素缺少 layout_width 属性。

        【讨论】:

          【解决方案7】:

          万一所有解决方案都不起作用
          clean project -> run 干杯

          【讨论】:

            【解决方案8】:

            对我来说,它在我的一个视图组 (scrollview) 上有一个额外的属性:

            xmlns:android="http://schemas.android.com/apk/res/android"
            

            在那之后我忘了把我的 EditText 转换成 TextView:

            原因:java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView 无法转换为 android.widget.EditText

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-04-18
              • 1970-01-01
              • 2013-12-03
              相关资源
              最近更新 更多