KDOSHI
KDOSHI

Reputation: 317

Binary XML file line #: Error inflating error for Spinner : Only on Android (6.0)-Marshmallow

     ArrayAdapter < String > dataAdapter = new ArrayAdapter < String >
      (this, R.layout.spinner_list_item, list0);

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

      dataAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
     } else {
      dataAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_custom);
     }

     mSpinner0.setAdapter(dataAdapter);

I also tried above code but no results..

I am using custom xml adpter.setDropDownViewResource() method like dataAdapter.setDropDownViewResource (R.layout.simple_spinner_dropdown_custom); There is total 3 spinner in my Layout. It's working fine with other 2 Spinner But fist spinner click gives me this error in Android 6.0. It's working fine in Android L (API-22) Please help. Thanks in advance.

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:textColor="@color/normal_color"
android:ellipsize="marquee"
android:padding="10dp"
android:background="@color/white"
android:layout_height="wrap_content" />

log

E/GAv4: Successfully bound to service but never got onServiceConnected
callback E/AndroidRuntime: FATAL EXCEPTION: main Process: com.abc.xyz, PID: 22725

android.view.InflateException: Binary XML file line #19: Binary XML file 
line #19: Error inflating class <unknown> at 
android.view.LayoutInflater.inflate(LayoutInflater.java:539)                                                                               
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)                                                                               
atandroid.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378)                                                                               
at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:448)                                                                               
at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:963)                                                                               
at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:959)                                                                               
at android.widget.Spinner.measureContentWidth(Spinner.java:833)                                                                               
at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1194)                                                                               
at android.widget.Spinner$DropdownPopup.show(Spinner.java:1220)                                                                               
at android.widget.Spinner.performClick(Spinner.java:758)                                                                               
at android.view.View$PerformClick.run(View.java:21163)                                                                               
at android.os.Handler.handleCallback(Handler.java:746)                                                                               
at android.os.Handler.dispatchMessage(Handler.java:95)                                                                               
at android.os.Looper.loop(Looper.java:148)                                                                               
at android.app.ActivityThread.main(ActivityThread.java:5443)                                                                               
at java.lang.reflect.Method.invoke(Native Method)at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>                                                                               
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
atcom.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)                                                         at  

android.view.LayoutInflater.onCreateView(LayoutInflater.java:694)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762)at 
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)        
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)at 
android.view.LayoutInflater.inflate(LayoutInflater.java:423)                 at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378)        
at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:448)        
at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:963)       at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:959)           at android.widget.Spinner.measureContentWidth(Spinner.java:833)             at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1194)    at android.widget.Spinner$DropdownPopup.show(Spinner.java:1220)      at android.widget.Spinner.performClick(Spinner.java:758)                  at android.view.View$PerformClick.run(View.java:21163)                      at android.os.Handler.handleCallback(Handler.java:746)                       at android.os.Handler.dispatchMessage(Handler.java:95)                       at android.os.Looper.loop(Looper.java:148)                      at android.app.ActivityThread.main(ActivityThread.java:5443)                    at java.lang.reflect.Method.invoke(Native Method)                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)             Caused by: java.lang.reflect.InvocationTargetException                   at java.lang.reflect.Constructor.newInstance(Native Method)                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:619)at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)at
android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378) 
at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:448) 
at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:963) 
at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:959) 
at android.widget.Spinner.measureContentWidth(Spinner.java:833) 
at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1194) 
at android.widget.Spinner$DropdownPopup.show(Spinner.java:1220) 
at android.widget.Spinner.performClick(Spinner.java:758) 
at android.view.View$PerformClick.run(View.java:21163) 
at android.os.Handler.handleCallback(Handler.java:746) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5443) 
at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 6: TypedValue{t=0x2/d=0x101009b a=1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:482)
at android.widget.TextView.<init>(TextView.java:750)
at android.widget.TextView.<init>(TextView.java:671)
at android.widget.TextView.<init>(TextView.java:667)
at java.lang.reflect.Constructor.newInstance(Native Method) 
at android.view.LayoutInflater.createView(LayoutInflater.java:619) at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378) 
at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:448) 
at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:963) 
at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:959) 
at android.widget.Spinner.measureContentWidth(Spinner.java:833) 
at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1194) 
at android.widget.Spinner$DropdownPopup.show(Spinner.java:1220) 
at android.widget.Spinner.performClick(Spinner.java:758) 
at android.view.View$PerformClick.run(View.java:21163) 
at android.os.Handler.handleCallback(Handler.java:746) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5443) 
at java.lang.reflect.Method.invoke(Native Method) 
atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 

Upvotes: 1

Views: 5748

Answers (1)

Ali Kazi
Ali Kazi

Reputation: 1636

I had the same issue. It happens if you add a theme to your drop down item. You should apply a theme only to your spinner. In your case, you have added a style to the TextView. You have not posted what that style contains, but if it has a theme such as

android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

you need to remove it.

Upvotes: 4

Related Questions