Android 初始化NavigationDrawer时出现NullPointerException

Android 初始化NavigationDrawer时出现NullPointerException,android,nullpointerexception,android-navigation,Android,Nullpointerexception,Android Navigation,我试图在我的应用程序中使用Navagation抽屉,但我一直遇到NullPointerException,我不明白为什么。我目前的代码主要基于以下内容: 第30行是:mDrawerList.setAdapter(新的ArrayAdapter(此, R.layout.drawer_list_item,mPages),我的res文件夹中有一个xml文件 现在,在我放入那一行之前,我在这一行上得到了一个NullPointerException:mDrawerLayout.setDrawerListen

我试图在我的应用程序中使用
Navagation抽屉
,但我一直遇到NullPointerException,我不明白为什么。我目前的代码主要基于以下内容:

第30行是:
mDrawerList.setAdapter(新的ArrayAdapter(此,
R.layout.drawer_list_item,mPages),我的res文件夹中有一个xml文件

现在,在我放入那一行之前,我在这一行上得到了一个
NullPointerException
mDrawerLayout.setDrawerListener(mDrawerToggle)


任何帮助都将不胜感激

我认为您的NullPointerException可能有两个原因:

第一种可能是这一行:

mPages = getResources().getStringArray(R.array.page_titles);
setContentView(R.layout.activity_main);
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
不向mPages返回有效数组。我想您的资源文件夹中没有名为“页面标题”的字符串数组

如果您发布的代码完全正确,另一个原因可能是这一行:

mPages = getResources().getStringArray(R.array.page_titles);
setContentView(R.layout.activity_main);
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
因为根据您的代码,navigationdrawer的布局文件是drawer\u layout.xml。所以它应该是这样的:

setContentView(R.layout.drawer_layout);
在我看来,DrawerLayout的资源id和.xml文件的名称都是“drawer\u layout”,这是非常误导人的,我强烈建议您更改它

此外,我不明白你为什么打这个电话:

mPages = getResources().getStringArray(R.array.page_titles);
setContentView(R.layout.activity_main);
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

在onCreate()方法中设置了两次。

我确实设置了字符串数组,但是将代码更改为
setContentView(R.layout.drawer\u layout)解决了问题,现在请原谅,我正在做掌纹;)。非常感谢。天哪,所以我应该改变我所有的布局来使用“导航抽屉”?我可以像使用简单的actionBar共享按钮一样使用它吗。(不更改所有布局)onCreate方法中的哪一行是第30行?我这边也有同样的错误