Error inflating class com.astuetz.PagerSlidingTabStrip

2.8k Views Asked by At

After I update my Android studio from 2.3.3 to 3.0 and I got this error after compiled and run (rror inflating class com.astuetz.PagerSlidingTabStrip) Please see the Log Error below:

android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.astuetz.PagerSlidingTabStrip
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2643)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2709)
                      at android.app.ActivityThread.access$1000(ActivityThread.java:196)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1534)
                      at android.os.Handler.dispatchMessage(Handler.java:111)
                      at android.os.Looper.loop(Looper.java:207)
                      at android.app.ActivityThread.main(ActivityThread.java:5867)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1026)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887)
                   Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.astuetz.PagerSlidingTabStrip
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:545)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
                      at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:436)
                      at android.app.Activity.setContentView(Activity.java:2205)
                      at com.goalplusapp.goalplus.MainActivity.onCreate(MainActivity.java:325)
                      at android.app.Activity.performCreate(Activity.java:6285)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2709) 
                      at android.app.ActivityThread.access$1000(ActivityThread.java:196) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1534) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5867) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1026) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887) 
                   Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.astuetz.PagerSlidingTabStrip
                      at android.view.LayoutInflater.createView(LayoutInflater.java:654)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:809)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:880)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883)
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:521)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                      at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:436) 
                      at android.app.Activity.setContentView(Activity.java:2205) 
                      at com.goalplusapp.goalplus.MainActivity.onCreate(MainActivity.java:325) 
                      at android.app.Activity.performCreate(Activity.java:6285) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2709) 
                      at android.app.ActivityThread.access$1000(ActivityThread.java:196) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1534) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5867) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1026) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887) 
                   Caused by: java.lang.reflect.InvocationTargetException
                      at java.lang.reflect.Constructor.newInstance(Native Method)
                      at android.view.LayoutInflater.createView(LayoutInflater.java:628)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:809) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:880) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:521) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                      at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:436) 
                      at android.app.Activity.setContentView(Activity.java:2205) 
                      at com.goalplusapp.goalplus.MainActivity.onCreate(MainActivity.java:325) 
                      at android.app.Activity.performCreate(Activity.java:6285) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2709) 
                      at android.app.ActivityThread.access$1000(ActivityThread.java:196) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1534) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5867) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1026) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887) 
                   Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x5
                      at android.content.res.TypedArray.getColor(TypedArray.java:451)
                      at com.astuetz.PagerSlidingTabStrip.<init>(PagerSlidingTabStrip.java:144)
                      at com.astuetz.PagerSlidingTabStrip.<init>(PagerSlidingTabStrip.java:106)
                      at java.lang.reflect.Constructor.newInstance(Native Method) 
                      at android.view.LayoutInflater.createView(LayoutInflater.java:628) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:809) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:880) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:883) 
                      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:843) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:521) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                      at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:436) 
                      at android.app.Activity.setContentView(Activity.java:2205) 
                      at com.goalplusapp.goalplus.MainActivity.onCreate(MainActivity.java:325) 
                      at android.app.Activity.performCreate(Activity.java:6285) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2709) 
                      at android.app.ActivityThread.access$1000(ActivityThread.java:196) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1534) 
                      at android.os.Handler.dispatchMessage(Handler.java:111) 
                      at android.os.Looper.loop(Looper.java:207) 
                      at android.app.ActivityThread.main(ActivityThread.java:5867) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1026) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:887) 
3

There are 3 best solutions below

0
ams73 On

you can leave dependency reference in gradle but do not inflate using inflater (seems to me the problem exists in inflating the slider tabs from XLM file) rather create the tabsliding object using code inside your activity onCreate, the problem starts when you inflate from XLM.

This is what I successfully did:

1) set your activity contentview to empty linearlayout XLM file

   setContentView(R.layout.pagerslidingtabstrip_viewpager);

2) find the layout and save it in variable

   LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_layout_view);

3) inflate your viewpager from separate XLM file than contains only the viewpager element

    mLayoutInflater = getLayoutInflater();
    mInflatedViewPagerLayout =  mLayoutInflater.inflate(R.layout.separate_viewpager,null);
    mViewPager = mInflatedViewPagerLayout.findViewById(R.id.viewpager);

4) create and configure your sliding tabs from code

    mTabStripLayout = new PagerSlidingTabStrip(this);
    mTabStripLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 140));
    mTabStripLayout.setShouldExpand(true);
    mTabStripLayout.setAllCaps(true);
    mTabStripLayout.setTextSize(60);
    mTabStripLayout.setTextColor(Color.BLACK);
    mTabStripLayout.setDividerColor(Color.BLUE);
    mTabStripLayout.setDividerPadding(30);
    mTabStripLayout.setIndicatorColor(Color.RED);
    mTabStripLayout.setIndicatorHeight(15);
    mTabStripLayout.setUnderlineColor(Color.BLUE);

4) add sliding tabs and viewpager in same order to linearlayout

    mainLayout.addView(mTabStripLayout);
    mainLayout.addView(mViewPager);

5) complete remaining setup as usual like creating adapter, assigning adapter to viewpager, and assigning viewpager to sliding tabs

    mPagerAdapter = new SampleFragmentPagerAdapter2(getSupportFragmentManager());
    mViewPager.setAdapter(mPagerAdapter);
    mTabStripLayout.setViewPager(mViewPager);
1
Max Pinto On

Try to change your .xml with this info:

<com.astuetz.PagerSlidingTabStrip
      android:id="@+id/tabs_quotation_track"
      android:layout_width="match_parent"
      android:layout_height="48dip"
      android:background="@drawable/background_tabs"
      android:layout_marginTop="20dp"/>

In my case the problem was with Android devices 7.0, and i was using

    <com.astuetz.PagerSlidingTabStrip
         android:id="@+id/tabs_quotation_track"
         android:layout_width="match_parent"
         android:layout_height="48dip"
         android:background="@drawable/background_tabs"
         app:pstsShouldExpand="true"/>

I think the problem ws pstsShouldExpand, or that is necesary the margin top.

Regards.

0
ralph danding On

I replaced Pageslidingtabstrip to android studio custom tab and it works fine..