2017-01-26 2 views
0

Мое приложение вылетает на устройстве, работающем под управлением Android 4.2.1, с android.view.InflateException: Binary XML file line, вызванным android.content.res.Resources$NotFoundException: File res/drawable/btn_light_bg.xml. Heres кнопка, которая вызывает проблему:

 <Button 
      android:id="@+id/listenDemoBtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginRight="8dp" 
      android:layout_marginEnd="8dp" 
      android:background="@drawable/btn_dark_bg" 
      android:textColor="@android:color/white" 
      style="?android:attr/buttonBarButtonStyle" 
      android:text="@string/listen_demo_btn"/> 

И проблемное вытяжке: button_dark_bg.xml выход

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:color="@color/colorPrimary" 
    tools:ignore="NewApi"> 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <stroke 
       android:width="1dp" 
       android:color="@color/colorPrimary" /> 
      <solid 
       android:color="@color/colorBackground" /> 
      <corners android:radius="2dp"/> 
     </shape> 
    </item> 
</ripple> 

Log:

01-26 13:11:14.721 16506-16506/us.kostenko.glagol E/AndroidRuntime: FATAL EXCEPTION: main 
                    android.view.InflateException: Binary XML file line #75: Error inflating class Button 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                     at us.kostenko.glagol.catalog.view.DetailBookFragment.onCreateView(DetailBookFragment.kt:56) 
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184) 
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298) 
                     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323) 
                     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136) 
                     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092) 
                     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998) 
                     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709) 
                     at android.os.Handler.handleCallback(Handler.java:725) 
                     at android.os.Handler.dispatchMessage(Handler.java:92) 
                     at android.os.Looper.loop(Looper.java:153) 
                     at android.app.ActivityThread.main(ActivityThread.java:5297) 
                     at java.lang.reflect.Method.invokeNative(Native Method) 
                     at java.lang.reflect.Method.invoke(Method.java:511) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                     at dalvik.system.NativeStart.main(Native Method) 
                    Caused by: android.content.res.Resources$NotFoundException: File res/drawable/btn_light_bg.xml from drawable resource ID #0x7f020057 
                     at android.content.res.Resources.loadDrawable(Resources.java:1993) 
                     at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
                     at android.view.View.<init>(View.java:3335) 
                     at android.widget.TextView.<init>(TextView.java:464) 
                     at android.widget.Button.<init>(Button.java:107) 
                     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:66) 
                     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62) 
                     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:109) 
                     at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1021) 
                     at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1080) 
                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47) 
                     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
                     at us.kostenko.glagol.catalog.view.DetailBookFragment.onCreateView(DetailBookFragment.kt:56)  
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184)  
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298)  
                     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323)  
                     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136)  
                     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092)  
                     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998)  
                     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709)  
                     at android.os.Handler.handleCallback(Handler.java:725)  
                     at android.os.Handler.dispatchMessage(Handler.java:92)  
                     at android.os.Looper.loop(Looper.java:153)  
                     at android.app.ActivityThread.main(ActivityThread.java:5297)  
                     at java.lang.reflect.Method.invokeNative(Native Method)  
                     at java.lang.reflect.Method.invoke(Method.java:511)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
                     at dalvik.system.NativeStart.main(Native Method)  
                    Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag ripple 
                     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881) 
                     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822) 
                     at android.content.res.Resources.loadDrawable(Resources.java:1990) 
                     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)  
                     at android.view.View.<init>(View.java:3335)  
                     at android.widget.TextView.<init>(TextView.java:464)  
                     at android.widget.Button.<init>(Button.java:107)  
                     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:66)  
                     at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)  
                     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:109)  
                     at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1021)  
                     at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1080)  
                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47)  
                     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)  
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
                     at us.kostenko.glagol.catalog.view.DetailBookFragment.onCreateView(DetailBookFragment.kt:56)  
                     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184)  
                     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298)  
                     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323)  
                     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136)  
                     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092)  
                     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998)  
                     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709)  
                     at android.os.Handler.handleCallback(Handler.java:725)  
                     at android.os.Handler.dispatchMessage(Handler.java:92)  
                     at android.os.Looper.loop(Looper.java:153)  
                     at android.app.ActivityThread.main(ActivityThread.java:5297)  
                     at java.lang.reflect.Method.invokeNative(Native Method)  
                     at java.lang.reflect.Method.invoke(Method 

App работает отлично на устройство работает под управлением Android 5.1.1. Любая мысль о том, что может быть неправильно здесь, высоко ценится.

+0

Да, эффект пульсации не будет работать ниже 21. – Shekhar

+2

Проверьте res/layout-v21 или что-то еще для других файлов xml с меньшим API. Кроме того, ошибка явно говорит btn_light_bg, и ваш xml использует темный цвет, так что это ваш первый намек на то, что вы смотрите на неправильный xml –

ответ

1

Создание каталога drawable-v21 под res каталога и добавьте вытяжку с пульсацией под drawable-v21 Для версий Api ниже 21, создайте вытяжку в том же имени и добавить его под drawable каталога, как показано ниже

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="false"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <corners android:radius="2.0dp"/> 
    <solid android:color="@color/colorPrimary"/> 
    </shape> 
</item> 
<item android:state_pressed="true"> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <corners android:radius="2.0dp"/> 
    <solid android:color="@color/colorPrimaryDark"/> 
</shape> 
</item> 

Однако выше не имеет эффекта пульсации

+0

О, это определенно должно работать. Спасибо, я попробую. – AlexKost

+0

спасибо, он решил мою проблему! – AlexKost

Смежные вопросы