Issue
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
Solution
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" />
Answered By - nommer
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.