Je reçois une exception null pointeur dans ce code, mais je suis incapable de suivre sa source.Normalement Exception fournir des détails sur quelle activité est la générer, mais il est différent.Il se produit sur certains appareils seulement. J'ai cherché l'exception sur internet mais je n'ai rien trouvé d'utile pour le moment. J'apprécierais toute aide. MerciException Weird Null Pointer avec source inconnue
public class MainActivity extends AppCompatActivity {
Button capture;
ImageView iv;
private Fragment fragment;
private FragmentManager fragmentManager;
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
ViewPagerAdapter adapter;
private AdView mAdView;
public static BadgeView badge;
/*private FirebaseRemoteConfig mFirebaseRemoteConfig;
public static int remote_counter;*/
public static int counter;
public static final String PREFS = "Badge";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_icon_text_tabs);
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()//.addTestDevice("8224D21A28DA92B60EB105E7FD793AF4")
.build();
mAdView.loadAd(adRequest);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
}
@Override
public void onAdLoaded() {
super.onAdLoaded();
mAdView.setVisibility(View.VISIBLE);
}
});
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setOffscreenPageLimit(3);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setupTabIcons();
}
private void setupTabIcons() {
TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabOne.setText("Facebook");
tabOne.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.fb, 0, 0);
tabLayout.getTabAt(0).setCustomView(tabOne);
TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabTwo.setText("Videos");
tabTwo.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.videos, 0, 0);
tabLayout.getTabAt(1).setCustomView(tabTwo);
TextView tabThree = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabThree.setText("Downloads");
tabThree.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.downloading, 0, 0);
tabLayout.getTabAt(2).setCustomView(tabThree);
SharedPreferences settings = getSharedPreferences(PREFS, MODE_PRIVATE);
int temp = settings.getInt("badge_counter", 0);
View target = tabLayout.getTabAt(2).getCustomView();
badge = new BadgeView(this, target);
badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
// badge.setText(String.valueOf(temp));
badge.setBadgeMargin(3, 0);
//badge.show();
//
if (temp > 0) {
badge.setText(String.valueOf(temp));
badge.show();
}
}
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new Facebook_Fragment(), "Facebook");
adapter.addFrag(new Downloads_Fragment(), "Videos");
adapter.addFrag(new Current_Downlaod(), "Downloads");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length > 0 && ActivityCompat.checkSelfPermission(MainActivity.this, permissions[0]) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "Permission granted", Toast.LENGTH_SHORT).show();
((Downloads_Fragment) adapter.getItem(1)).updateDownloads();
} else {
Toast.makeText(MainActivity.this, "Permission denied", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onPause() {
if (mAdView != null) {
mAdView.pause();
}
super.onPause();
}
@Override
public void onDestroy() {
if (mAdView != null) {
mAdView.destroy();
}
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
if (mAdView != null) {
mAdView.resume();
}
}
}
et je reçois cette exception sur certains des périphériques. Il fonctionne parfaitement sur kitkat android et jelly bean que j'ai testé moi-même. Mais je reçois des rapports d'accident sur la sucette, la guimauve, le nougat.
java.lang.NullPointerException:
at com.kpsd.activity.c.<init>(Unknown Source:0)
at com.kpsd.a.b$1.run(Unknown Source:0)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5451)
at java.lang.reflect.Method.invoke(Native Method:0)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Copie possible de [Qu'est-ce qu'une exception NullPointerException, et comment la réparer?] (Https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Fildor
êtes-vous sûr que cela se passe dans cette activité ???? –
Je n'ai que deux activités, celle-ci et une autre mais l'autre ne joue que la vidéo donc je pense que le problème est ici. –