Android java.lang.RuntimeException:二进制XML文件行:必须提供布局宽度属性

Android java.lang.RuntimeException:二进制XML文件行:必须提供布局宽度属性,android,android-fragments,Android,Android Fragments,我在做什么:: 我正在使用 我有一个主活动,它有一个存放片段的抽屉(I (有5个片段) 其中一个片段我已经实现了上面的库 对于滑动层(ps:使用此库,因为我不使用 夏洛克·李白) 发生了什么: 加载包含此库的片段时,我会得到如图所示的日志 如何解决这个问题,库中明确说明我可以与 片段,因为它被视为任何其他视图(在注释中读取 (节) fragment\u what\u hot.xml <RelativeLayout xmlns:android="http://schemas.android

我在做什么::

  • 我正在使用
  • 我有一个主活动,它有一个存放片段的抽屉(I (有5个片段)
  • 其中一个片段我已经实现了上面的库 对于滑动层(ps:使用此库,因为我不使用 夏洛克·李白)
  • 发生了什么:

  • 加载包含此库的片段时,我会得到如图所示的日志

  • 如何解决这个问题,库中明确说明我可以与 片段,因为它被视为任何其他视图(在注释中读取 (节)


  • fragment\u what\u hot.xml

    <RelativeLayout 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"
        tools:context=".MainActivity" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="45dp" />
    
        <Button
            android:id="@+id/buttonOpen"
            android:layout_centerInParent="true"
            android:onClick="buttonClicked"
            android:text="OPEN" />
    
        <com.slidinglayer.SlidingLayer
            xmlns:slidingLayer="http://schemas.android.com/apk/res/com.slidinglayersample"
            android:id="@+id/slidingLayer1"
            android:layout_width="@dimen/layer_width"
            android:layout_height="match_parent" >
    
            <!--
            slidingLayer:shadowDrawable="@drawable/sidebar_shadow"
            slidingLayer:shadowWidth="@dimen/shadow_width"
            slidingLayer:offsetWidth="@dimen/offset_width"
            slidingLayer:stickTo="auto|right|left|middle"
            slidingLayer:closeOnTapEnabled="true">
            -->
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#14ad8f" >
    
                <TextView
                    android:id="@+id/swipeText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:drawablePadding="15dip"
                    android:gravity="center"
                    android:paddingBottom="80dp"
                    android:textColor="#074035"
                    android:textSize="17sp" />
    
                <Button
                    android:id="@+id/buttonClose"
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginBottom="60dp"
                    android:onClick="buttonClicked"
                    android:text="CLOSE" />
            </RelativeLayout>
        </com.slidinglayer.SlidingLayer>
    
    </RelativeLayout>
    
    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!-- Framelayout to display Fragments -->
        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <!-- Listview to display slider menu -->
        <ListView
            android:id="@+id/list_slidermenu"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@color/list_divider"
            android:dividerHeight="1dp"        
            android:listSelector="@drawable/list_selector"
            android:background="@color/list_background"/>
    </android.support.v4.widget.DrawerLayout>
    
    活动\u main.xml

    <RelativeLayout 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"
        tools:context=".MainActivity" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="45dp" />
    
        <Button
            android:id="@+id/buttonOpen"
            android:layout_centerInParent="true"
            android:onClick="buttonClicked"
            android:text="OPEN" />
    
        <com.slidinglayer.SlidingLayer
            xmlns:slidingLayer="http://schemas.android.com/apk/res/com.slidinglayersample"
            android:id="@+id/slidingLayer1"
            android:layout_width="@dimen/layer_width"
            android:layout_height="match_parent" >
    
            <!--
            slidingLayer:shadowDrawable="@drawable/sidebar_shadow"
            slidingLayer:shadowWidth="@dimen/shadow_width"
            slidingLayer:offsetWidth="@dimen/offset_width"
            slidingLayer:stickTo="auto|right|left|middle"
            slidingLayer:closeOnTapEnabled="true">
            -->
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#14ad8f" >
    
                <TextView
                    android:id="@+id/swipeText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:drawablePadding="15dip"
                    android:gravity="center"
                    android:paddingBottom="80dp"
                    android:textColor="#074035"
                    android:textSize="17sp" />
    
                <Button
                    android:id="@+id/buttonClose"
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginBottom="60dp"
                    android:onClick="buttonClicked"
                    android:text="CLOSE" />
            </RelativeLayout>
        </com.slidinglayer.SlidingLayer>
    
    </RelativeLayout>
    
    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!-- Framelayout to display Fragments -->
        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <!-- Listview to display slider menu -->
        <ListView
            android:id="@+id/list_slidermenu"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@color/list_divider"
            android:dividerHeight="1dp"        
            android:listSelector="@drawable/list_selector"
            android:background="@color/list_background"/>
    </android.support.v4.widget.DrawerLayout>
    
    
    
    日志:

    01-24 19:13:27.951: E/AndroidRuntime(5917): FATAL EXCEPTION: main
    01-24 19:13:27.951: E/AndroidRuntime(5917): Process: info.androidhive.slidingmenu, PID: 5917
    01-24 19:13:27.951: E/AndroidRuntime(5917): java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:492)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5960)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6129)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.widget.RelativeLayout$LayoutParams.<init>(RelativeLayout.java:1225)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1062)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:82)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:757)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at info.androidhive.slidingmenu.WhatsHotFragment.onCreateView(WhatsHotFragment.java:23)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.Fragment.performCreateView(Fragment.java:1700)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.BackStackRecord.run(BackStackRecord.java:684)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.os.Handler.handleCallback(Handler.java:733)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.os.Handler.dispatchMessage(Handler.java:95)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.os.Looper.loop(Looper.java:136)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at android.app.ActivityThread.main(ActivityThread.java:5086)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at java.lang.reflect.Method.invokeNative(Native Method)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at java.lang.reflect.Method.invoke(Method.java:515)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    01-24 19:13:27.951: E/AndroidRuntime(5917):     at dalvik.system.NativeStart.main(Native Method)
    
    01-2419:13:27.951:E/AndroidRuntime(5917):致命异常:main
    01-24 19:13:27.951:E/AndroidRuntime(5917):进程:info.androidhive.slidingmenu,PID:5917
    01-24 19:13:27.951:E/AndroidRuntime(5917):java.lang.RuntimeException:二进制XML文件行#14:必须提供布局宽度属性。
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.content.res.TypedArray.getLayoutDimension(TypedArray.java:492)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5960)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.view.ViewGroup$MarginLayoutParams(ViewGroup.java:6129)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.widget.RelativeLayout$LayoutParams。(RelativeLayout.java:1225)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1062)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:82)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.view.LayoutInflater.rInflate(LayoutInflater.java:757)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在info.androidhive.slidingmenu.WhatsHotFragment.onCreateView(WhatsHotFragment.java:23)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.app.Fragment.performCreateView(Fragment.java:1700)上
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.app.BackStackRecord.run(BackStackRecord.java:684)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.os.Handler.handleCallback(Handler.java:733)上
    01-2419:13:27.951:E/AndroidRuntime(5917):位于android.os.Handler.dispatchMessage(Handler.java:95)
    01-2419:13:27.951:E/AndroidRuntime(5917):在android.os.Looper.loop(Looper.java:136)
    01-2419:13:27.951:E/AndroidRuntime(5917):位于android.app.ActivityThread.main(ActivityThread.java:5086)
    01-24 19:13:27.951:E/AndroidRuntime(5917):位于java.lang.reflect.Method.Invokenactive(本机方法)
    01-2419:13:27.951:E/AndroidRuntime(5917):在java.lang.reflect.Method.invoke(Method.java:515)
    01-24 19:13:27.951:E/AndroidRuntime(5917):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    01-2419:13:27.951:E/AndroidRuntime(5917):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    01-2419:13:27.951:E/AndroidRuntime(5917):在dalvik.system.NativeStart.main(本机方法)
    
    错误信息非常简单:

    java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
    
    这意味着您在布局文件中有一个XML元素,它需要一个
    android:layout\u width
    属性,而您没有

    从堆栈跟踪来看,这似乎来自
    fragment\u whats\u hot.xml
    。您将看到第14行位于:

    <Button
        android:id="@+id/buttonOpen"
        android:layout_centerInParent="true"
        android:onClick="buttonClicked"
        android:text="OPEN" />
    
    
    

    并且,如错误消息所示,您没有
    android:layout\u width
    属性。您也没有
    android:layout\u height
    属性。请将它们添加到此小部件以及任何其他需要它们的小部件或容器的布局中。。。比如你的另一个
    按钮

    你没有为你的
    按钮打开
    按钮设置尺寸。@DerGolem。。。。是的。。。这就是错误。。。。我没有注意到。。。我想我的大脑没有滴答作响。。。。需要刷新:)我太笨了,没有注意到。。。。。谢谢你的回答和清楚的解释!