我有一个可以在物理设备上测试的应用程序,并且一切正常。但是,当我在其他设备上对其进行测试时,在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。