-1

May be silly question but really looking in google for 2hrs. Actually my app gets crashed in pre lollipop but run well in other versions.the following is the crash report.

FATAL EXCEPTION: main
                                                                             android.view.InflateException: Binary XML file line #15: Error inflating class Button
                                                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
                                                                                 at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
                                                                                 at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
                                                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
                                                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
                                                                                 at .MvpFragment.onCreateView(MvpFragment.java:59)
                                                                                 at android.support.v4.app.Fragment.performCreateView(Fragment.java:2192)
                                                                                 at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
                                                                                 at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
                                                                                 at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
                                                                                 at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:758)
                                                                                 at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2363)
                                                                                 at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2149)
                                                                                 at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2103)
                                                                                 at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2013)
                                                                                 at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)
                                                                                 at android.os.Handler.handleCallback(Handler.java:730)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                 at android.os.Looper.loop(Looper.java:176)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                                 at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                 at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                                 at dalvik.system.NativeStart.main(Native Method)
                                                                              Caused by: android.content.res.Resources$NotFoundException: File res/drawable/custom_button_selected.xml from drawable resource ID #0x7f0200a4

I'm using custom background for for button as below:

<Button
    android:id="@+id/btnCompleted"
    android:layout_weight="1"
    android:layout_gravity="left"
    android:text="Completed"
    android:textColor="@android:color/white"
    android:background="@drawable/custom_button_selected"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

custom_button_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="?attr/icon_color"
                android:endColor="?attr/icon_color"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/transparent_color8" />
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item android:state_focused="true" >
        <shape>
            <gradient
                android:endColor="?attr/icon_color"
                android:startColor="?attr/icon_color"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/transparent_color8" />
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>
        <shape>
            <gradient
                android:startColor="?attr/icon_color"
                android:endColor="?attr/icon_color"
                android:angle="270" />
            <stroke
                android:width="2dp"
                android:color="@color/transparent_color8" />
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>
Pranesh Sahu
  • 595
  • 5
  • 26

2 Answers2

0

StateListDrawable can be used to change state of an button (pressed, focused...) and if you are going to use your custom_button_selected.xml as background to change states of your buttton then you are missing drawable inside your selector particulary inside your item tag as it is required. Something like this:

<item android:state_pressed="true" android:drawable="@color/transparent_color8"> .... </item> - or whatever color you wanna use

Yupi
  • 4,402
  • 3
  • 18
  • 37
0

android {defaultConfig { vectorDrawables.useSupportLibrary = true}}

Nimisha V
  • 461
  • 4
  • 12
  • I have read your problem and please check this one https://stackoverflow.com/questions/39419596/resourcesnotfoundexception-file-res-drawable-abc-ic-ab-back-material-xml – Nimisha V Jun 29 '17 at 11:04