Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.Class java.lang.Object.getClass()' on a null object reference

I try to use viewPager with the tablayout but when i set adapter with the view pager i'm getting error "java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass() on a null object reference" i don't understand why this error is show.

view pager set Adapter:

viewPager= (ViewPager) findViewById(R.id.viewPager_id);   viewPager.setAdapter(newViewPagerAdapterUseThisClass(getSupportFragmentManager(),14)); 

Adapter clss:

class ViewPagerAdapterUseThisClass extends FragmentPagerAdapter {     int countTabItem;      ViewPagerAdapterUseThisClass(FragmentManager fm,int contTabItem) {         super(fm);          this.countTabItem=contTabItem;     }      @Override     public Fragment getItem(int position) {          if(position==0){             EnthusamTab enthusamTab=new EnthusamTab();             return enthusamTab;         }          return null;     }      @Override     public int getCount() {         return countTabItem;     } } 

view pager xml file:

 <android.support.v4.view.ViewPager             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_below="@id/tab_layout_id"             android:id="@+id/viewPager_id"/> 

Error log:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference                                                                                   at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:380)                                                                                   at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:375)                                                                                   at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:103)                                                                                   at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034)                                                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1248)                                                                                   at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)                                                                                   at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)                                                                                   at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)                                                                                   at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)                                                                                   at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)                                                                                   at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)                                                                                   at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083)                                                                                   at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)                                                                                   at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689)                                                                                   at android.view.View.measure(View.java:19861)                                                                                   at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2275)                                                                                   at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1366)                                                                                   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1619)                                                                                   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)                                                                                   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6343)                                                                                   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)                                                                                   at android.view.Choreographer.doCallbacks(Choreographer.java:686)                                                                                   at android.view.Choreographer.doFrame(Choreographer.java:621)                                                                                   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)                                                                                   at android.os.Handler.handleCallback(Handler.java:751)                                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)                                                                                   at android.os.Looper.loop(Looper.java:154)                                                                                   at android.app.ActivityThread.main(ActivityThread.java:6126)                                                                                   at java.lang.reflect.Method.invoke(Native Method)                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
like image 793
xyz rety Avatar asked Jan 24 '17 11:01

xyz rety


People also ask

What is Java object getClass method?

Java Object getClass() Method. getClass() is the method of Object class. This method returns the runtime class of this object. The class object which is returned is the object that is locked by static synchronized method of the represented class. Syntax

How to get the class name of an object in Java?

The Java Object getClass () method returns the class name of the object. The syntax of the getClass () method is: The getClass () method does not take any parameters. In the above example, we have used the getClass () method to get the name of the class. Here, we are able to call the getClass () method using the String and ArrayList object.

What is an object in Java?

java.lang.Object public class Object Class Objectis the root of the class hierarchy. Every class has Objectas a superclass. All objects, including arrays, implement the methods of this class. Since: 1.0 See Also: Class Constructor Summary Constructors Constructor Description Object() Constructs a new object. Method Summary

How to call getClass() method using string and ArrayList in Java?

Here, we are able to call the getClass () method using the String and ArrayList object. It is because String and ArrayList inherit the Object class. Here, we have created a class named Main. Note that we have called the getClass () method using the method of Main. It is possible because Object class is the superclass of all the classes in Java.


1 Answers

This exception occurs when you return null at getItem(int position) method of PagerAdapter.

You have to set a return value(n) at getCount() method and return a Fragment at getItem(int position) method for all (0 .. n-1) positions.

For instance, if you return 3 from getCount() method, then you must return a not-null Fragment for positions 0, 1 and 2 at getItem(int position) method. If you return a null for position 0, 1 or 2, you'll get:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference

private static class MyPagerAdapter extends FragmentPagerAdapter {     ...      @Override     public int getCount() {         return 3;     }      @Override     public Fragment getItem(int position) {         switch (position) {             case 0:                 return new XFragment();             case 1:                 return new YFragment();             case 2:                 return new ZFragment();             default:                 return null; // Problem occurs at this condition!         }     } } 
like image 53
Devrim Avatar answered Sep 18 '22 13:09

Devrim