某些设备上的viewPage setAdapter nullpointer

时间:2019-05-11 14:00:46

标签: java android

我有一个可以在物理设备上测试的应用程序,并且一切正常。但是,当我在其他设备上对其进行测试时,在viewPager.setAdapter(pageAdapter)上出现了NullPointerException。我无法弄清楚为什么它在某些设备上不起作用,我找不到的答案对我也有用。

这是我的StatsActivity.java

super.onCreate(savedInstanceState);
setContentView(R.layout.stats);

tabLayout = findViewById(R.id.tabs);
tabSolo = findViewById(R.id.tabsolo);
tabDuo = findViewById(R.id.tabduo);
tabSquad = findViewById(R.id.tabsquad);
viewPager = findViewById(R.id.pager);

pageAdapter = new PageAdapter(getSupportFragmentManager(), 3);
viewPager.setAdapter(pageAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setVisibility(View.INVISIBLE);
viewPager.setOffscreenPageLimit(3);

这是我得到的错误

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
        at com.galan.app.caidamagistral.StatsActivity.onCreate(StatsActivity.java:83)
        at android.app.Activity.performCreate(Activity.java:7050)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:176) 
        at android.app.ActivityThread.main(ActivityThread.java:6701) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:246) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783) 

第83行是viewPager.setAdapter。

viewPager,tabLayout和所有内容都在stats.xml中。我不知道为什么它只能在某些设备上运行。 编辑:我知道什么是NullPointerException,我想知道的是为什么我只能在某些设备上获得NPE。

0 个答案:

没有答案