应用程序崩溃在启动时在Android API的10,但不能在API 16,因为资源$ NotFoundException [英] App crashes on startup on android API 10 but not on API 16 because of Resources$NotFoundException

查看:376
本文介绍了应用程序崩溃在启动时在Android API的10,但不能在API 16,因为资源$ NotFoundException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序启动并开始正常我的三星Galaxy S3手机运行的是Android 4.1.2,但是当我尝试测试我的摩托罗拉Droid X相同的应用程序运行的是Android 2.3.4之前的任何应用程序崩溃,甚至显示在我的Droid X的屏幕。

我的LogCat中如下。不幸的是,它并不指向我我的$ C $的正是C部分是失败的,但似乎是与我的,因为这些异常的布局:

  10月8号至9号:43:39.686:E / AndroidRuntime(3192):致命异常:主要
10月8日至9号:43:39.686:E / AndroidRuntime(3192):android.view.InflateException:二进制XML文件中的行#11:错误充气类<未知>
10月8日至9号:43:39.686:E / AndroidRuntime(3192):由:java.lang.reflect.InvocationTargetException`
10月8日至9号:43:39.686:E / AndroidRuntime(3192):android.content.res.Resources $ NotFoundException:产生的原因:
资源不是绘制对象(颜色或路径):的TypedValue {吨= 0X2 /天= 0x10102fd一个= -1}
 

登录猫:

  10月8号至9号:43:39.686:E / AndroidRuntime(3192):致命异常:主要
10月8日至9号:43:39.686:E / AndroidRuntime(3192):android.view.InflateException:二进制XML文件中的行#11:错误充气类<未知>
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.LayoutInflater.createView(LayoutInflater.java:518)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.LayoutInflater.inflate(LayoutInflater.java:386)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.LayoutInflater.inflate(LayoutInflater.java:320)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.AbsListView.obtainView(AbsListView.java:1456)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ListView.makeAndAddView(ListView.java:1821)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ListView.fillDown(ListView.java:686)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ListView.fillFromTop(ListView.java:754)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.ListView.layoutChildren(ListView.java:1670)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.AbsListView.onLayout(AbsListView.java:1286)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.FrameLayout.onLayout(FrameLayout.java:338)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.FrameLayout.onLayout(FrameLayout.java:338)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.FrameLayout.onLayout(FrameLayout.java:338)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View.layout(View.java:7184)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.os.Handler.dispatchMessage(Handler.java:99)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.os.Looper.loop(Looper.java:130)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.app.ActivityThread.main(ActivityThread.java:3806)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在java.lang.reflect.Method.invokeNative(本机方法)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在java.lang.reflect.Method.invoke(Method.java:507)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在dalvik.system.NativeStart.main(本机方法)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):由:java.lang.reflect.InvocationTargetException
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在java.lang.reflect.Constructor.constructNative(本机方法)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在java.lang.reflect.Constructor.newInstance(Constructor.java:415)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.LayoutInflater.createView(LayoutInflater.java:505)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):35 ...更多
10月8日至9号:43:39.686:E / AndroidRuntime(3192):android.content.res.Resources $ NotFoundException:由造成资源不是绘制对象(彩色或路径)的TypedValue {T = 0X2 / D = 0x10102fd一个= -1}
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.content.res.Resources.loadDrawable(Resources.java:1719)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.content.res.TypedArray.getDrawable(TypedArray.java:601)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.view.View< INIT>(View.java:1951)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.TextView< INIT>(TextView.java:453)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):在android.widget.TextView< INIT>(TextView.java:446)
10月8日至9号:43:39.686:E / AndroidRuntime(3192):38 ...更多
10月8日至9号:43:42.201:I /过程(3192):发送信号。 PID:3192 SIG:9
 

解决方案

修正了!!

展望更,它看起来像它必须是与一个ArrayAdapter,以及我的布局。我使用的是自定义布局(drawer_list_item.xml)我ArrayAdapter带来了一些具体的ICS code我猜测,所以我不得不从XML文件中删除了一些行和应用程序启动罚款Android的API 10(专安卓2.3.4)。造成问题的专门的线条在我的布局文件是:

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

下面是code在我SherlockFragmentActivity这是造成布局异常/崩溃:

  m_drawerList.setAdapter(新ArrayAdapter<字符串>(getSupportActionBar()getThemedContext(),R.layout.drawer_list_item,m_drawerNames));
 

OLD drawer_list_item.xml code:

 < 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
机器人:以下属性来=16DP
机器人:paddingRight =16DP
机器人:文字颜色=#FFF
机器人:背景=机器人:ATTR / activatedBackgroundIndicator!<  - 删除线 - >
机器人:=了minHeight:/>中的Andr​​oid ATTR /列表preferredItemHeightSmall? <! - 删除线 - >
 

固定drawer_list_item.xml code:

 < TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:ID =@机器人:ID / text1中
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:重力=center_vertical
机器人:填充=16DP
机器人:文字颜色=#FFF/>
 

My app launches and starts fine on my Samsung Galaxy S3 phone running Android 4.1.2, but when I try to test the same app on my Motorola Droid X running Android 2.3.4 the app crashes before anything is even displayed on my Droid X screen.

My LogCat is below. Unfortunately, it does not point me to exactly what part of my code it is failing on, but it seems like something to do with my layout because of these exceptions:

08-09 10:43:39.686: E/AndroidRuntime(3192): FATAL EXCEPTION: main
08-09 10:43:39.686: E/AndroidRuntime(3192): android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: java.lang.reflect.InvocationTargetException`  
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: android.content.res.Resources$NotFoundException: 
Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1}

Log Cat:

08-09 10:43:39.686: E/AndroidRuntime(3192): FATAL EXCEPTION: main
08-09 10:43:39.686: E/AndroidRuntime(3192): android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.AbsListView.obtainView(AbsListView.java:1456)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ListView.makeAndAddView(ListView.java:1821)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ListView.fillDown(ListView.java:686)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ListView.fillFromTop(ListView.java:754)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.ListView.layoutChildren(ListView.java:1670)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.AbsListView.onLayout(AbsListView.java:1286)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.layout(View.java:7184)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.os.Looper.loop(Looper.java:130)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.app.ActivityThread.main(ActivityThread.java:3806)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at java.lang.reflect.Method.invokeNative(Native Method)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at java.lang.reflect.Method.invoke(Method.java:507)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at dalvik.system.NativeStart.main(Native Method)
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: java.lang.reflect.InvocationTargetException
08-09 10:43:39.686: E/AndroidRuntime(3192):     at java.lang.reflect.Constructor.constructNative(Native Method)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.LayoutInflater.createView(LayoutInflater.java:505)
08-09 10:43:39.686: E/AndroidRuntime(3192):     ... 35 more
08-09 10:43:39.686: E/AndroidRuntime(3192): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x10102fd a=-1}
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.content.res.Resources.loadDrawable(Resources.java:1719)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.view.View.<init>(View.java:1951)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.TextView.<init>(TextView.java:453)
08-09 10:43:39.686: E/AndroidRuntime(3192):     at android.widget.TextView.<init>(TextView.java:446)
08-09 10:43:39.686: E/AndroidRuntime(3192):     ... 38 more
08-09 10:43:42.201: I/Process(3192): Sending signal. PID: 3192 SIG: 9

解决方案

Fixed!!

Looking into it more and it looks like it had something to do with the ArrayAdapter as well as my layout. I was using a custom layout (drawer_list_item.xml) for my ArrayAdapter which had some ICS specific code I am guessing, so I just had to remove some lines from that XML file and the app launched fine on Android API 10 (specifically Android 2.3.4). The lines specifically in my layout file that caused problems was:

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

Here is the code in my SherlockFragmentActivity that was causing the layout exception/crash:

m_drawerList.setAdapter(new ArrayAdapter<String>(getSupportActionBar().getThemedContext(),R.layout.drawer_list_item, m_drawerNames));

OLD drawer_list_item.xml code:

<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"<!-- Deleted line-->
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="#fff"
android:background="?android:attr/activatedBackgroundIndicator"<!-- Deleted line-->
android:minHeight="?android:attr/listPreferredItemHeightSmall"/> <!-- Deleted line-->

FIXED drawer_list_item.xml code:

<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:gravity="center_vertical"
android:padding="16dp"
android:textColor="#fff" />

这篇关于应用程序崩溃在启动时在Android API的10,但不能在API 16,因为资源$ NotFoundException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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