/ / ResourceNotFoundException pour drawable dans Android 4.4, mais fonctionne très bien dans Android 7 - android, android-layout, android-resources

ResourceNotFoundException pour drawable dans Android 4.4, mais fonctionne correctement sous Android 7 - Android, Android-layout, Android-Resources

Ce problème se produit sur Android 4.4 mais fonctionne correctement sur Android 7.

Error inflating class CheckBox

recyclerview_item.xml

<CheckBox
android:id="@+id/favourite"
android:layout_width="wrap_content"
android:layout_height="match_parent"

android:layout_weight="0"
android:button="@drawable/favourites_selector"
android:paddingLeft="8px"
android:paddingRight="32px" />

favourites_selector

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/not_favourite"
android:state_checked="false"/>
<item android:drawable="@drawable/favourite"
android:state_checked="true"/>
<item android:drawable="@drawable/favourite"/>
</selector>

MyAdapter

 @Override
public DataObjectHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item, parent, false);

DataObjectHolder dataObjectHolder = new DataObjectHolder(view);

//Get favoruites to manpulate the UI

return dataObjectHolder;
}

Journal des erreurs

    Exception android.view.InflateException: Binary XML file line #39: Error inflating class CheckBox
android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:714)
android.view.LayoutInflater.rInflate (LayoutInflater.java:756)
android.view.LayoutInflater.rInflate (LayoutInflater.java:759)
android.view.LayoutInflater.rInflate (LayoutInflater.java:759)
android.view.LayoutInflater.inflate (LayoutInflater.java:492)
android.view.LayoutInflater.inflate (LayoutInflater.java:397)
com.storekey.retailer.ProductSearchListAdapter.onCreateViewHolder (ProductSearchListAdapter.java:66)
com.storekey.retailer.ProductSearchListAdapter.onCreateViewHolder (ProductSearchListAdapter.java:37)
android.support.v7.widget.RecyclerView$Adapter.createViewHolder (RecyclerView.java:6321)
android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5509)
android.support.v7.widget.RecyclerView$Recycler.getViewForPosition (RecyclerView.java:5394)
android.support.v7.widget.RecyclerView$Recycler.getViewForPosition (RecyclerView.java:5390)
android.support.v7.widget.LinearLayoutManager$LayoutState.next (LinearLayoutManager.java:2149)
android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1533)
android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1496)
android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:593)
android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3537)
android.support.v7.widget.RecyclerView.onMeasure (RecyclerView.java:2979)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1404)
android.widget.LinearLayout.measureVertical (LinearLayout.java:695)
android.widget.LinearLayout.onMeasure (LinearLayout.java:588)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:714)
android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:786)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.FrameLayout.onMeasure (FrameLayout.java:310)
android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:139)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1404)
android.widget.LinearLayout.measureVertical (LinearLayout.java:695)
android.widget.LinearLayout.onMeasure (LinearLayout.java:588)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.FrameLayout.onMeasure (FrameLayout.java:310)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1404)
android.widget.LinearLayout.measureVertical (LinearLayout.java:695)
android.widget.LinearLayout.onMeasure (LinearLayout.java:588)
android.view.View.measure (View.java:16497)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:5125)
android.widget.FrameLayout.onMeasure (FrameLayout.java:310)
com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure (PhoneWindow.java:2291)
android.view.View.measure (View.java:16497)
android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:1916)
android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1113)
android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1295)
android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1000)
android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:5670)
android.view.Choreographer$CallbackRecord.run (Choreographer.java:761)
android.view.Choreographer.doCallbacks (Choreographer.java:574)
android.view.Choreographer.doFrame (Choreographer.java:544)
android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:747)
android.os.Handler.handleCallback (Handler.java:733)
android.os.Handler.dispatchMessage (Handler.java:95)
arrow_drop_down
Caused by android.content.res.Resources$NotFoundException: File res/drawable/favourites_selector.xml from drawable resource ID #0x7f02006c
arrow_drop_down
Caused by android.content.res.Resources$NotFoundException: File res/drawable/not_favourite.xml from drawable resource ID #0x7f020076
arrow_drop_down
Caused by org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector

Réponses:

0 pour la réponse № 1

Corrigé en ajoutant ci-dessous dans ma classe d'activité. Il est nécessaire dans le cas des versions Pre lollipop si vous utilisez des dessins vectoriels.

static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}