paxcow
paxcow

Reputation: 1941

Crashing on app launch, "Binary XML file line #0: Error inflating class"

I am fairly new to android development and when im trying to inflate an xml, my application is crashing on launch with the following error. Any help is appreciated. thank you

Exception in the logs:

 01-16 17:13:34.033 1836-1836/com.example.android.inventoryapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.example.android.inventoryapp, PID: 1836
                                                                                android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class <unknown>
                                                                                Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class <unknown>
                                                                                Caused by: java.lang.reflect.InvocationTargetException
                                                                                    at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                    at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
                                                                                    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                                                    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
                                                                                    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
                                                                                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
                                                                                    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                                                                                    at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
                                                                                    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                                                    at com.example.android.inventoryapp.ItemCursorAdapter.newView(ItemCursorAdapter.java:29)
                                                                                    at android.widget.CursorAdapter.getView(CursorAdapter.java:285)
                                                                                    at android.widget.AbsListView.obtainView(AbsListView.java:2363)
                                                                                    at android.widget.ListView.makeAndAddView(ListView.java:1970)
                                                                                    at android.widget.ListView.fillDown(ListView.java:704)
                                                                                    at android.widget.ListView.fillFromTop(ListView.java:765)
                                                                                    at android.widget.ListView.layoutChildren(ListView.java:1716)
                                                                                    at android.widget.AbsListView.onLayout(AbsListView.java:2162)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                                                                                    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:433)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                                                                                    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
                                                                                    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
                                                                                    at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                                                                                    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                                                                                    at com.android.internal.policy.DecorView.onLayout(DecorView.java:726)
                                                                                    at android.view.View.layout(View.java:17637)
                                                                                    at android.view.ViewGroup.layout(ViewGroup.java:5575)
                                                                                    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)
                                                                                    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)
                                                                                    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
                                                                                    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
                                                                                    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
                                                                                    at android.view.Choreographer.doCallbacks(Choreographer.java:686)
                                                                                    at android.view.Choreographer.doFrame(Choreographer.java:621)
                                                                                    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
                                                                                    at android.os.Handler.handleCallback(Handler.java:751)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
01-16 17:13:34.034 1836-1836/com.example.android.inventoryapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                 Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 14 to dimension: type=0x4
                                                                                    at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:720)
                                                                                    at android.view.View.<init>(View.java:4205)
                                                                                    at android.view.ViewGroup.<init>(ViewGroup.java:579)
                                                                                    at android.widget.LinearLayout.<init>(LinearLayout.java:211)
                                                                                    at android.widget.LinearLayout.<init>(LinearLayout.java:207)
                                                                                    at android.widget.LinearLayout.<init>(LinearLayout.java:203)
                                                                                        ... 58 more

my xml for a list item that is being used in a list view on another xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="horizontal"
    android:padding="@dimen/activity_margin">

    <ImageView
        android:id="@+id/item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        tools:src="@mipmap/ic_launcher_round"
        />

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-medium"
        android:textAppearance="?android:textAppearanceMedium"
        android:textColor="#2B3D4D"
        android:gravity="center"
        android:layout_gravity="center"
        android:layout_marginLeft="@dimen/list_item_margin"
        tools:text ="Sunglasses"
        android:layout_marginStart="@dimen/list_item_margin" />

    <TextView
        android:id="@+id/quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif"
        android:textAppearance="?android:textAppearanceLarge"
        android:textColor="#AEB6BD"
        android:layout_marginLeft="@dimen/list_item_margin"
        android:textStyle="bold"
        android:layout_gravity="center"
        tools:text ="7"
        android:layout_marginStart="@dimen/list_item_margin" />


    <Button
        android:id="@+id/sell_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_marginLeft="@dimen/list_item_margin"
        tools:text="Sell"
        android:layout_marginStart="@dimen/list_item_margin" />
</LinearLayout>

Dimens:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="activity_margin">16</dimen>
    <dimen name="list_item_margin">35dp</dimen>
    <dimen name="fab_margin">16dp</dimen>
</resources>

Stackoverflow is asking me to add more details but there are not any, as far as i can see, so i am making up these lines to pass the error.

Upvotes: 0

Views: 847

Answers (2)

Rene Ferrari
Rene Ferrari

Reputation: 4206

Is your dimens.xml file under the values folder? If not then this might cause the problem. If you have provided dimensions for certain API's but have not provided all of them under values/dimens.xml inflating should not work.

EDIT: activity_main needs dp appended meaning: <dimen name="activity_margin">16dp</dimen>

Upvotes: 3

Juan Cruz Soler
Juan Cruz Soler

Reputation: 8254

You forgot to add DP here:

<dimen name="activity_margin">16</dimen>

It should be:

<dimen name="activity_margin">16dp</dimen>

Upvotes: 1

Related Questions