0

當我在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。

如果缺少代碼/文件,請讓我知道,我會立即包括它。

回答

1

您的主要活動延伸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