calintat / explorer

Android file manager
Apache License 2.0
78 stars 41 forks source link

InflateException on Android 4.x #2

Closed keeblebogdan closed 7 years ago

keeblebogdan commented 7 years ago

InflateException only on Android 4.x at this line: View itemView = LayoutInflater.from(context).inflate(itemLayout, parent, false);

android.view.InflateException: Binary XML file line #1: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:620) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) at android.view.LayoutInflater.inflate(LayoutInflater.java:469) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.dyve.counting.FileExplorer.RecyclerAdapter.onCreateViewHolder(RecyclerAdapter.java:54) at com.dyve.counting.FileExplorer.RecyclerAdapter.onCreateViewHolder(RecyclerAdapter.java:18) at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5223) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4449) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4359) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961) at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:438) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562) at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:171) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747) at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1133) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:760) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1673) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527) at android.widget.LinearLayout.onLayout(LinearLayout.java:1436) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1673) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527) at android.widget.LinearLayout.onLayout(LinearLayout.java:1436) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) at android.widget.FrameLayout.onLayout(FrameLayout.java:388) at android.view.View.layout(View.java:14858) at android.view.ViewGroup.layout(ViewGroup.java:4646) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2035) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1792) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1047)

keeblebogdan commented 7 years ago

After spending 2 silly days figuring out what was the problem, i figured out the cause: using attributes as reference to color in xml drawable. On API<21 you can't use attrs to color in xml drawable. So only way is to use reference to color resourse (@color/YOURS_COLOR) or use #RGB format.So if you want to use xml drawable with theme depended colors you should create a drawable for each theme;

Solution: I changed the background for the list_items from @drawable/selectable_background to a different color and everything works fine now.

image