I see two potential reasons for your NullPointerException:
The first one could be that this line:
mPages = getResources().getStringArray(R.array.page_titles);
does not return a valid array to mPages. I suppose you do not have a string array called "page_titles" in your resources folder.
If your posted code is absolutely correct, one other reason could be this line:
setContentView(R.layout.activity_main);
since according to your code, the layoutfile of the navigationdrawer is drawer_layout.xml. So it should look like this:
setContentView(R.layout.drawer_layout);
In my opinion, the resource id of your DrawerLayout and the name of the .xml file both being "drawer_layout" is very misleading, I would strongly recommend to change that.
Furthermore, I don't see the reason why you are calling this line:
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
twice in your onCreate() method.