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
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。。。。是的。。。这就是错误。。。。我没有注意到。。。我想我的大脑没有滴答作响。。。。需要刷新:)我太笨了,没有注意到。。。。。谢谢你的回答和清楚的解释!