NPE错误膨胀类片段:NavigationDrawerFragment

问题描述:

当我在Android Studio中创建新的导航抽屉活动时,基本示例运行完美。我已经更改了几行以整合Material Design和v4 - v7支持,因此应用程序中断。我还在Firebase的一些基本代码中加入了与Google+进行简单认证的代码。NPE错误膨胀类片段:NavigationDrawerFragment

启动该应用程序将返回一个运行时异常和“错误膨胀类片段”消息。

我在猜测NPE是来自未被夸大的观点,但我不知道这是怎么回事。

下面是我的logcat,我的活动和我的布局。任何帮助或指导,将不胜感激。

logcat的:

11-24 16:29:26.735 6127-6127/com.starkenglish E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.starkenglish, PID: 6127 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.starkenglish/com.starkenglish.MainActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class fragment 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
      at android.app.ActivityThread.access$800(ActivityThread.java:144) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5146) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class fragment 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 
      at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
      at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:343) 
      at android.app.Activity.setContentView(Activity.java:1929) 
      at com.starkenglish.MainActivity.onCreate(MainActivity.java:110) 
      at android.app.Activity.performCreate(Activity.java:5231) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
            at android.app.ActivityThread.access$800(ActivityThread.java:144) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5146) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
            at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at com.starkenglish.NavigationDrawerFragment.onCreateView(NavigationDrawerFragment.java:101) 
      at android.app.Fragment.performCreateView(Fragment.java:1700) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:866) 
      at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1040) 
      at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142) 
      at android.app.Activity.onCreateView(Activity.java:4786) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:343) 
            at android.app.Activity.setContentView(Activity.java:1929) 
            at com.starkenglish.MainActivity.onCreate(MainActivity.java:110) 
            at android.app.Activity.performCreate(Activity.java:5231) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 
            at android.app.ActivityThread.access$800(ActivityThread.java:144) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5146) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
            at dalvik.system.NativeStart.main(Native Method) 

为了保持这个贴子干净,我已经发布我的代码在GitHub上GIST。

如果缺少代码/文件,请让我知道,我会立即包括它。

您的主要活动延伸FragmentActivity,为了得到一个动作条

这是在你的NavigationDrawerFragment line 101上市,就像错误说

mDrawerListView.setAdapter(new ArrayAdapter<String>(
       getActivity().getActionBar().getThemedContext(), <== this is the null part 
       android.R.layout.simple_list_item_activated_1, 
       android.R.id.text1, 
       new String[]{ 
         getString(R.string.title_section1), 
         getString(R.string.title_section2), 
         getString(R.string.title_section3), 
       })); 

你需要从应用程序兼容性延长ActionBarActivity从文档

报价

ActionBarCompat包含一个活动类,您的活动 类应该扩展:ActionBarActivity。此类本身从FragmentActivity扩展 ,因此您可以继续在 应用程序中使用片段。

+0

谢谢你的帮助。我已经改变了, 'MainActivity MainActivity扩展活动'公共类MainActivity扩展ActionBarActivity在MainActivity.java 仍然收到同样的错误,我不理解你吗? – markbratanov 2014-11-24 23:05:16

+0

你可以将我粘贴在我的代码部分onActivityCreated,而不是在onCreateView – 2014-11-24 23:24:45

+0

也行不通。 我注意到,当我改变风格。XML返回到原始模板,它工作正常。当我尝试使用新的材质设计appcompat时,它会失败? – markbratanov 2014-11-24 23:33:22