同时采用DrawerLayout未知的错误? [英] Unknown error while using DrawerLayout?

查看:196
本文介绍了同时采用DrawerLayout未知的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用用DrawerLayout从支持库官方教程,但每当我试图运行我的应用程序崩溃了。经过阅读下面的日志,我无法确定我的code中的位置,这是负责这个崩溃。

  21 06-16:14:55.272:E / AndroidRuntime(20104):致命异常:主要
06-16 21:14:55.272:E / AndroidRuntime(20104):android.view.InflateException:二进制XML文件行#17:错误充气类<&不明GT;
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.LayoutInflater.createView(LayoutInflater.java:513)
06-16 21:14:55.272:E / AndroidRuntime(20104):在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.LayoutInflater.inflate(LayoutInflater.java:385)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.AbsListView.obtainView(AbsListView.java:1340)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ListView.makeAndAddView(ListView.java:1789)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ListView.fillDown(ListView.java:656)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ListView.fillFromTop(ListView.java:722)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.ListView.layoutChildren(ListView.java:1624)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.AbsListView.onLayout(AbsListView.java:1172)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.View.layout(View.java:7080)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:672)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.View.layout(View.java:7080)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.View.layout(View.java:7080)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.View.layout(View.java:7080)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.ViewRoot.performTraversals(ViewRoot.java:1056)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.ViewRoot.handleMessage(ViewRoot.java:1738)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.os.Handler.dispatchMessage(Handler.java:99)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.os.Looper.loop(Looper.java:143)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.app.ActivityThread.main(ActivityThread.java:4717)
06-16 21:14:55.272:E / AndroidRuntime(20104):在java.lang.reflect.Method.invokeNative(本机方法)
06-16 21:14:55.272:E / AndroidRuntime(20104):在java.lang.reflect.Method.invoke(Method.java:521)
06-16 21:14:55.272:E / AndroidRuntime(20104):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:860)
06-16 21:14:55.272:E / AndroidRuntime(20104):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-16 21:14:55.272:E / AndroidRuntime(20104):在dalvik.system.NativeStart.main(本机方法)
06-16 21:14:55.272:E / AndroidRuntime(20104):由:java.lang.reflect.InvocationTargetException
。06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.TextView<&初始化GT;(TextView.java:426)
06-16 21:14:55.272:E / AndroidRuntime(20104):在java.lang.reflect.Constructor.constructNative(本机方法)
06-16 21:14:55.272:E / AndroidRuntime(20104):在java.lang.reflect.Constructor.newInstance(Constructor.java:446)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.LayoutInflater.createView(LayoutInflater.java:500)
06-16 21:14:55.272:E / AndroidRuntime(20104):... 29个
06-16 21:14:55.272:E / AndroidRuntime(20104):$ android.content.res.Resources NotFoundException:通过引起了绘制资源编号为0x0文件RES /彩色/ primary_text_dark.xml
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.content.res.Resources.loadDrawable(Resources.java:1725)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.content.res.TypedArray.getDrawable(TypedArray.java:601)
。06-16 21:14:55.272:E / AndroidRuntime(20104):在android.view.View<&初始化GT;(View.java:1902)
。06-16 21:14:55.272:E / AndroidRuntime(20104):在android.widget.TextView<&初始化GT;(TextView.java:432)
06-16 21:14:55.272:E / AndroidRuntime(20104):... 33个
06-16 21:14:55.272:E / AndroidRuntime(20104):$ android.content.res.Resources NotFoundException:通过引起了XML类型绘制资源编号为0x0文件RES /彩色/ primary_text_dark.xml
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.content.res.Resources.loadXmlResourceParser(Resources.java:1952)
06-16 21:14:55.272:E / AndroidRuntime(20104):在android.content.res.Resources.loadDrawable(Resources.java:1720)
06-16 21:14:55.272:E / AndroidRuntime(20104):... 36个


我的布局文件:

 <?XML版本=1.0编码=UTF-8&GT?;
< android.support.v4.widget.DrawerLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@ + ID / drawer_layout
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent>    <! - 的主要内容视图 - >    <的FrameLayout
        机器人:ID =@ + ID / content_frame
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent/>    <! - 导航抽屉 - >    < ListView控件
        机器人:ID =@ + ID / left_drawer
        机器人:layout_width =240dp
        机器人:layout_height =match_parent
        机器人:layout_gravity =开始
        机器人:背景=#111
        机器人:choiceMode =singleChoice
        机器人:分=@机器人:彩色/透明
        机器人:dividerHeight =0dp/>< /android.support.v4.widget.DrawerLayout>


我的drawer_list_item.xml

 < TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@机器人:ID / text1中
    机器人:layout_width =match_parent
    机器人:layout_height =WRAP_CONTENT
    机器人:textAppearance =机器人:ATTR / textAppearanceListItemSmall
    机器人:重力=center_vertical
    机器人:paddingLeft =16DP
    机器人:paddingRight =16DP
    机器人:文字颜色=#FFF
    机器人:背景=机器人:ATTR / activatedBackgroundIndicator
    安卓了minHeight =:/>中的Andr​​oid ATTR /列表preferredItemHeightSmall?

如果需要更多的信息,那么请评论,我会更新的问题。


解决方案

我正好面临同样的问题昨天。这里就是我所做的,以解决这个问题。

唯一的问题是的TextView 的您正在使用夸大你的列表项。所以,如果你使用像

  mDrawerList.setAdapter(新ArrayAdapter<串GT;(这一点,
                R.layout.drawer_list_item,listarray));

只是替换

  mDrawerList.setAdapter(新ArrayAdapter<串GT;(这一点,
                android.R.layout.simple_list_item_1,listarray));

和它应该工作。

EDT:如果您使用的是相同code像Android 2.2或2.3的目标,你应该删除这些行的


  

drawer_list_item.xml


 安卓了minHeight =机器人:ATTR /列表preferredItemHeightSmall
机器人:背景=机器人:ATTR / activatedBackgroundIndicator
机器人:textAppearance =机器人:ATTR / textAppearanceListItemSmall

I am trying to use DrawerLayout from Support library using official tutorial but whenever I tried to run my application I got crash .After reading the below logs I am not able to identify the location in my code which is responsible for this crash.

06-16 21:14:55.272: E/AndroidRuntime(20104): FATAL EXCEPTION: main
06-16 21:14:55.272: E/AndroidRuntime(20104): android.view.InflateException: Binary XML file line #17: Error inflating class <unknown>
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.LayoutInflater.createView(LayoutInflater.java:513)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.AbsListView.obtainView(AbsListView.java:1340)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ListView.makeAndAddView(ListView.java:1789)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ListView.fillDown(ListView.java:656)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ListView.fillFromTop(ListView.java:722)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.ListView.layoutChildren(ListView.java:1624)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.AbsListView.onLayout(AbsListView.java:1172)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.View.layout(View.java:7080)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:672)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.View.layout(View.java:7080)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.View.layout(View.java:7080)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.View.layout(View.java:7080)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1056)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1738)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.os.Looper.loop(Looper.java:143)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.app.ActivityThread.main(ActivityThread.java:4717)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at java.lang.reflect.Method.invokeNative(Native Method)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at java.lang.reflect.Method.invoke(Method.java:521)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at dalvik.system.NativeStart.main(Native Method)
06-16 21:14:55.272: E/AndroidRuntime(20104): Caused by: java.lang.reflect.InvocationTargetException
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.TextView.<init>(TextView.java:426)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at java.lang.reflect.Constructor.constructNative(Native Method)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.LayoutInflater.createView(LayoutInflater.java:500)
06-16 21:14:55.272: E/AndroidRuntime(20104):    ... 29 more
06-16 21:14:55.272: E/AndroidRuntime(20104): Caused by: android.content.res.Resources$NotFoundException: File res/color/primary_text_dark.xml from drawable resource ID #0x0
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.content.res.Resources.loadDrawable(Resources.java:1725)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.view.View.<init>(View.java:1902)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.widget.TextView.<init>(TextView.java:432)
06-16 21:14:55.272: E/AndroidRuntime(20104):    ... 33 more
06-16 21:14:55.272: E/AndroidRuntime(20104): Caused by: android.content.res.Resources$NotFoundException: File res/color/primary_text_dark.xml from xml type drawable resource ID #0x0
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:1952)
06-16 21:14:55.272: E/AndroidRuntime(20104):    at android.content.res.Resources.loadDrawable(Resources.java:1720)
06-16 21:14:55.272: E/AndroidRuntime(20104):    ... 36 more


My Layout file:

<?xml version="1.0" encoding="utf-8"?>
<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" >

    <!-- The main content view -->

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- The navigation drawer -->

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

</android.support.v4.widget.DrawerLayout>


My drawer_list_item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:textColor="#fff"
    android:background="?android:attr/activatedBackgroundIndicator"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"/>

If More information is required then please comment and I will update the question.

解决方案

I happened to face the same problem yesterday. And here's what I did to fix that.

Only problem is of the TextView that you are using to inflate your list Item. So if you are using something like

mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_list_item, listarray));

Just replace it with

mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, listarray));

and it should work.

EDT: If you are using the same code for a target like android 2.2 or 2.3, you should remove these lines from your

drawer_list_item.xml

android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:background="?android:attr/activatedBackgroundIndicator"
android:textAppearance="?android:attr/textAppearanceListItemSmall"

这篇关于同时采用DrawerLayout未知的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆