2017-09-15 2 views
0

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) 
+2

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

+0

êtes-vous sûr que cela se passe dans cette activité ???? –

+0

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. –

Répondre

0

Je suis en mesure de connaître l'origine de la NPE maintenant, l'exception a été proguarded que je revins à l'aide this outil en ligne. et fait. Merci à tous pour vos conseils.