Error inflating class android.support.v4.view.ViewPager

42,924

Solution 1

Make sure that you place your libraries in a common folder such as libs in your project.

Right click on the jar, then select Build Path and click on Add to Build Path.

That will add your library to your project. If everything is correct, you can see it in a generated "folder" in the project called "Referenced Libraries"

Solution 2

Go to Project → Properties → Java Build Path than select Order and Export tab.

Set android-support-v4.jar library checked and up it into top of the list. And clean and rebuild..It works for most of the cases

Solution 3

I simply Replaced the code with this and it worked

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/main_tabPager"
        android:layout_width="match_parent">

Solution 4

When We use new adt JARS SHOULD put in folder called "libs"

Then libs -->use as source folder
and your jar > add to build path.

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Share:
42,924

Related videos on Youtube

thepoosh
Author by

thepoosh

A java (mostly) developer at Freightos interested in Android, Flutter, Java, GCP,k8s and anything I can wrap my head around

Updated on December 28, 2020

Comments

  • thepoosh
    thepoosh over 3 years

    I've been trying to create a Pager for my application that runs on <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> I wrote my code according to this blog post.

    XML for Pager activity:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/instructionsViewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" /> 
    </LinearLayout>
    

    Code for adapter:

    public class MyPagerAdapter extends PagerAdapter {
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 2;
        }
    
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            return (arg0 == ((View) arg1));
        }
    
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            ((ViewPager) container).removeView((View) object);
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            LayoutInflater inflater = (LayoutInflater) container.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            int resId = 0;
            switch (position) {
            case 1:
                resId = R.layout.instructions_page1;
                break;
            case 2:
                resId = R.layout.instructions_page2;
                break;
            }
            View view = inflater.inflate(resId, null);
            ((ViewPager) container).addView(view, 0);
            return view;
        }
    }
    

    Code for activity

    public class Instructions extends Activity {
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.instructions);
    
            MyPagerAdapter adapter = new MyPagerAdapter();
            ViewPager pager = (ViewPager) findViewById(R.id.instructionsViewPager);
            pager.setAdapter(adapter);
            pager.setCurrentItem(0);
        }
    }
    

    for some reason, when I run this app, I get this following error list:

    05-28 09:38:54.535: E/AndroidRuntime(18658): FATAL EXCEPTION: main
    05-28 09:38:54.535: E/AndroidRuntime(18658): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thepoosh/com.thepoosh.Instructions}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.os.Handler.dispatchMessage(Handler.java:99)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.os.Looper.loop(Looper.java:123)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread.main(ActivityThread.java:3691)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at java.lang.reflect.Method.invokeNative(Native Method)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at java.lang.reflect.Method.invoke(Method.java:507)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at dalvik.system.NativeStart.main(Native Method)
    05-28 09:38:54.535: E/AndroidRuntime(18658): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.Activity.setContentView(Activity.java:1663)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at com.thepoosh.Instructions.onCreate(Instructions.java:11)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    ... 11 more
    05-28 09:38:54.535: E/AndroidRuntime(18658): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader[/data/app/com.thepoosh-1.apk]
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.createView(LayoutInflater.java:471)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
    05-28 09:38:54.535: E/AndroidRuntime(18658):    ... 20 more
    

    so, I know it's failing because I'm using the android.support.v4.view.ViewPager, I tried playing with that and changing to plain ViewPager and importing android.support.v13 but it didn't help...

    any thoughts on how to fix this?

  • thepoosh
    thepoosh almost 12 years
    this question was answered about 3 weeks ago... what's the point in copying the accepted answer and re-posting?
  • Admin
    Admin about 11 years
    There is a point. Knossos' answer didn't help me, but the bit that says " Set android-support-v4.jar library checked and up it into top of the list." in sheetal's answer helped me a ton. +1 for this answer.
  • Sanjay Bhimani
    Sanjay Bhimani over 9 years
    @sheetal saved my day. Thank you. +1.