1

这可能有点难以解释,但在这里。首先你需要知道我的应用程序是如何设置的。从ViewPager转到NavigationDrawer时强制关闭?

LoginPage> ViewPager教程(包含4个片段)>导航抽屉。

在ViewPager的最后一个片段上有一个按钮,用于确认您已完成教程。当你想再次看到教程时,问题就出现了。我将它添加到我的导航抽屉中,因为我希望用户能够回到教程。当用户按下4th Fragment上的按钮时,我会看到强制关闭错误,并说他们看过本教程。只有在通过导航抽屉第二次访问教程时才会发生此错误。

这里是你如何得到它:

@Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

      Fragment newFragment = new FragmentOne(); 
      FragmentManager fm = getSupportFragmentManager(); 
      switch(i) { 
      case 0: 
       newFragment = new FragmentTwo(); 
       fm.popBackStack(); 
       fm.beginTransaction().add(R.id.main, newFragment).addToBackStack("fragback").commit(); 
       break; 
      case 1: 
       newFragment = new FragmentThree(); 
       fm.popBackStack(); 
       fm.beginTransaction().add(R.id.main, newFragment).addToBackStack("fragback").commit(); 
       break; 
      case 2: 
       newFragment = new FragmentFour(); 
       fm.popBackStack(); 
       fm.beginTransaction().add(R.id.main, newFragment).addToBackStack("fragback").commit(); 
       break; 
      case 3: 
       Intent goToTut = new Intent(getApplicationContext(), FragmentPagerActivity.class); 
       startActivity(goToTut); 
       //fm.popBackStack(); 
       break; 
      } 
      drawerLayout.closeDrawer(rl); 

情况下3:
意向goToTut =新意图(getApplicationContext(),FragmentPagerActivity.class); startActivity(goToTut);

错误:

FATAL EXCEPTION: main 
Process: com.package.name, PID: 3379 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.inter.space.NavDrawer}: 
java.lang.NullPointerException: println needs a message 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
at android.app.ActivityThread.access$800(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5017) 
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:779) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException: println needs a message 
at android.util.Log.println_native(Native Method) 
at android.util.Log.i(Log.java:160) 
at com.package.name.PostLogin.onCreate(PostLogin.java:98) 
at android.app.Activity.performCreate(Activity.java:5231) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
01-29 10:20:08.852: E/AndroidRuntime(3379):  ... 11 more 

我认为错误是因为我想从不同的地方打开NavigationDrawer它试图在真正创建它的一个新实例,它已经运行。有没有办法可以解决这个问题?

我真的很感谢这方面的一些帮助,因为我迷路了。先谢谢你。

+0

发布PostLogin的代码,并指示线98 – Raghunandan

+0

线98:Log.i( “Facebook的ID”,PID);该pId来自ViewPager上的一个Intent。我的PostLogin相当大。我会看看我能做什么。 –

+1

'pld'为空。检查它 – Raghunandan

回答

1

从您的意见第98行是

Log.i("Facebook id:", pId); 

所以pld为空。你的日志说需要打印一条信息。

Caused by: java.lang.NullPointerException: println needs a message 

检查并确保pld不为空