title: Null Pointer Exception at android.content.contextwrapper.getResources
body: <p>As per the title, I'm getting this error when I try to call <code>getDrawablesList()</code> and <code>setupUI()</code> in my <code>ImageSectionFragment()</code>. </p>
  
  <p><code>getDrawablesList()</code> and <code>setupUI()</code> were tested in a separate project called in <code>onCreate()</code> and they worked perfectly fine. </p>
  
  <p>I suspect it has something to do with how I call them here in the <code>FragmentActivity</code>. </p>
  
  <p>Any help would be greatly appreciated.</p>
  
  <pre><code>public class MainActivity extends FragmentActivity {
      SectionsPagerAdapter mSectionsPagerAdapter;
      ViewPager mViewPager;
      public String SERVERIP;
      private TCPClient mTcpClient;
      private ArrayList&lt;String&gt; arrayList;
      private ImageView selectedImageView;
      private ImageView leftArrowImageView;
      private ImageView rightArrowImageView;
      private Gallery gallery;
      private int selectedImagePosition = 0;
      private List&lt;Drawable&gt; drawables;
      private GalleryImageAdapter galImageAdapter;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main_page);
          arrayList = new ArrayList&lt;String&gt;();
          Bundle extras = getIntent().getExtras();
          SERVERIP = extras.getString("key");
          // Create the adapter that will return a fragment for each of the three
          // primary sections of the app.
          mSectionsPagerAdapter = new SectionsPagerAdapter(
                  getSupportFragmentManager());
  
          // Set up the ViewPager with the sections adapter.
          mViewPager = (ViewPager) findViewById(R.id.pager);
          mViewPager.setAdapter(mSectionsPagerAdapter);
  
          if (SERVERIP == "null") {
              Log.d("MainActivity.java", "Continue without connection selected");
          }
  
          else {
              new connectTask().execute("");
          }
      }
  
      /**
       * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
       * one of the sections/tabs/pages.
       */
      public class SectionsPagerAdapter extends FragmentPagerAdapter {
  
          public SectionsPagerAdapter(FragmentManager fm) {
              super(fm);
          }
  
          @Override
          public Fragment getItem(int position) {
              // getItem is called to instantiate the fragment for the given page.
              // Return a DummySectionFragment (defined as a static inner class
              // below) with the page number as its lone argument.
              /*
               * Fragment fragment = new DummySectionFragment(); Bundle args = new
               * Bundle(); args.putInt(DummySectionFragment.ARG_SECTION_NUMBER,
               * position + 1); fragment.setArguments(args); return fragment;
               */
              Fragment fragment = new Fragment();
              if (position == 0) {
                  fragment = new DummySectionFragment();
              }
  
              else if (position == 1) {
                  fragment = new ImageSectionFragment();
              }
  
              return fragment;
          }
  
          @Override
          public int getCount() {
              // Show 3 total pages.
              return 3;
          }
  
          @Override
          public CharSequence getPageTitle(int position) {
              Locale l = Locale.getDefault();
              switch (position) {
              case 0:
                  return getString(R.string.title_section1).toUpperCase(l);
              case 1:
                  return getString(R.string.title_section2).toUpperCase(l);
              case 2:
                  return getString(R.string.title_section3).toUpperCase(l);
              }
              return null;
          }
      }
  
      /**
       * A dummy fragment representing a section of the app, but that simply
       * displays dummy text.
       */
      public static class DummySectionFragment extends Fragment {
          /**
           * The fragment argument representing the section number for this
           * fragment.
           */
          public DummySectionFragment() {
  
          }
  
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container,
                  Bundle savedInstanceState) {
              View rootView = inflater.inflate(R.layout.fragment_textpage,
                      container, false);
              return rootView;
          }
      }
  
      public static class ImageSectionFragment extends Fragment {
          /**
           * The fragment argument representing the section number for this
           * fragment.
           */
          MainActivity ma = new MainActivity();
          public ImageSectionFragment() {
  
          }
  
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container,
                  Bundle savedInstanceState) {
              View rootView = inflater.inflate(R.layout.fragment_imagepage,container, false);
              ma.getDrawablesList();
              ma.setupUI();
              return rootView;
          }
  
  
      }
  
      private void setupUI() {
  
          selectedImageView = (ImageView) findViewById(R.id.selected_imageview);
          leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
          rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
          gallery = (Gallery) findViewById(R.id.gallery);
  
          leftArrowImageView.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View v) {
  
                  if (selectedImagePosition &gt; 0) {
                      --selectedImagePosition;
  
                  }
  
                  gallery.setSelection(selectedImagePosition, false);
              }
          });
  
          rightArrowImageView.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View v) {
  
                  if (selectedImagePosition &lt; drawables.size() - 1) {
                      ++selectedImagePosition;
  
                  }
  
                  gallery.setSelection(selectedImagePosition, false);
  
              }
          });
  
          gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
  
              @Override
              public void onItemSelected(AdapterView&lt;?&gt; parent, View view, int pos, long id) {
  
                  selectedImagePosition = pos;
  
                  if (selectedImagePosition &gt; 0 &amp;&amp; selectedImagePosition &lt; drawables.size() - 1) {
  
                      leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
                      rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
  
                  } else if (selectedImagePosition == 0) {
  
                      leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
  
                  } else if (selectedImagePosition == drawables.size() - 1) {
  
                      rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
                  }
  
                  changeBorderForSelectedImage(selectedImagePosition);
                  setSelectedImage(selectedImagePosition);
              }
  
              @Override
              public void onNothingSelected(AdapterView&lt;?&gt; arg0) {
  
              }
  
          });
  
          galImageAdapter = new GalleryImageAdapter(this, drawables);
  
          gallery.setAdapter(galImageAdapter);
  
          if (drawables.size() &gt; 0) {
  
              gallery.setSelection(selectedImagePosition, false);
  
          }
  
          if (drawables.size() == 1) {
  
              rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
          }
  
      }
  
      private void changeBorderForSelectedImage(int selectedItemPos) {
  
          int count = gallery.getChildCount();
  
          for (int i = 0; i &lt; count; i++) {
  
              ImageView imageView = (ImageView) gallery.getChildAt(i);
              imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
              imageView.setPadding(3, 3, 3, 3);
  
          }
  
          ImageView imageView = (ImageView) gallery.getSelectedView();
          imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
          imageView.setPadding(3, 3, 3, 3);
      }
  
      private void getDrawablesList() {
  
          drawables = new ArrayList&lt;Drawable&gt;();
          drawables.add(getResources().getDrawable(R.drawable.natureimage1));
          drawables.add(getResources().getDrawable(R.drawable.natureimage2));
          drawables.add(getResources().getDrawable(R.drawable.natureimage3));
          drawables.add(getResources().getDrawable(R.drawable.natureimage4));
          drawables.add(getResources().getDrawable(R.drawable.natureimage5));
          drawables.add(getResources().getDrawable(R.drawable.natureimage6));
          drawables.add(getResources().getDrawable(R.drawable.natureimage7));
          drawables.add(getResources().getDrawable(R.drawable.natureimage8));
          drawables.add(getResources().getDrawable(R.drawable.natureimage9));
          drawables.add(getResources().getDrawable(R.drawable.natureimage10));
          drawables.add(getResources().getDrawable(R.drawable.natureimage11));
          drawables.add(getResources().getDrawable(R.drawable.natureimage12));
          drawables.add(getResources().getDrawable(R.drawable.natureimage13));
          drawables.add(getResources().getDrawable(R.drawable.natureimage14));
          drawables.add(getResources().getDrawable(R.drawable.natureimage15));
  
      }
  
      private void setSelectedImage(int selectedImagePosition) {
  
          BitmapDrawable bd = (BitmapDrawable) drawables.get(selectedImagePosition);
          Bitmap b = Bitmap.createScaledBitmap(bd.getBitmap(), (int) (bd.getIntrinsicHeight() * 0.9), (int) (bd.getIntrinsicWidth() * 0.7), false);
          selectedImageView.setImageBitmap(b);
          selectedImageView.setScaleType(ScaleType.FIT_XY);
  
      }
  
      public class connectTask extends AsyncTask&lt;String, String, TCPClient&gt; {
  
          @Override
          protected TCPClient doInBackground(String... message) {
  
              // we create a TCPClient object and
              mTcpClient = new TCPClient(new TCPClient.OnMessageReceived() {
                  @Override
                  // here the messageReceived method is implemented
                  public void messageReceived(String message) {
                      // this method calls the onProgressUpdate
                      publishProgress(message);
                  }
              });
              mTcpClient.run(SERVERIP);
  
              return null;
          }
  
          @Override
          protected void onProgressUpdate(String... values) {
              super.onProgressUpdate(values);
  
              // in the arrayList we add the messaged received from server
              arrayList.add(values[0]);
              // notify the adapter that the data set has changed. This means that
              // new message received
              // from server was added to the list
  
          }
      }
  }
  </code></pre>
  
  <p>Here is the logcat</p>
  
  <pre><code>07-16 14:21:48.664: E/AndroidRuntime(26188): FATAL EXCEPTION: main
  07-16 14:21:48.664: E/AndroidRuntime(26188): java.lang.NullPointerException
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.content.ContextWrapper.getResources(ContextWrapper.java:81)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.fypj.mdm.MainActivity.getDrawablesList(MainActivity.java:273)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.fypj.mdm.MainActivity.access$0(MainActivity.java:270)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.fypj.mdm.MainActivity$ImageSectionFragment.onCreateView(MainActivity.java:160)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.view.ViewPager.populate(ViewPager.java:1064)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.view.ViewPager.populate(ViewPager.java:911)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1432)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.View.measure(View.java:15481)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5107)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.View.measure(View.java:15481)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.View.measure(View.java:15481)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5107)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2361)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.View.measure(View.java:15481)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1999)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1238)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1413)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1131)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4611)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.Choreographer.doFrame(Choreographer.java:525)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.os.Handler.handleCallback(Handler.java:615)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.os.Handler.dispatchMessage(Handler.java:92)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.os.Looper.loop(Looper.java:137)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at android.app.ActivityThread.main(ActivityThread.java:4898)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at java.lang.reflect.Method.invokeNative(Native Method)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at java.lang.reflect.Method.invoke(Method.java:511)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
  07-16 14:21:48.664: E/AndroidRuntime(26188):    at dalvik.system.NativeStart.main(Native Method)
  </code></pre>