FragmentTransaction 空指针异常?

FragmentTransaction Null pointer Exception?

这是我的 OncreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.contact_detail, container,
            false);
    return view;

}

这是我在 MainActivity 中的 OnCreate

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (findViewById(R.id.fragment_container) != null) {
        if (savedInstanceState != null) {
            return;
        }
        // getOverflowMenu();
        // Create an Instance of Fragment
        AddContactFragment fragment = new AddContactFragment();
        fragment.setArguments(getIntent().getExtras());
        fragment.getFragmentManager().beginTransaction()
                .add(R.id.fragment_container, fragment).commit();
    }

堆栈跟踪:

03-22 14:16:36.265: E/AndroidRuntime(851): FATAL EXCEPTION: main
03-22 14:16:36.265: E/AndroidRuntime(851): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.finalprojectaddcontact/com.example.finalprojectaddcontact.MainActivity}: java.lang.NullPointerException
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread.access0(ActivityThread.java:141)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.os.Looper.loop(Looper.java:137)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread.main(ActivityThread.java:5041)
03-22 14:16:36.265: E/AndroidRuntime(851):  at java.lang.reflect.Method.invokeNative(Native Method)
03-22 14:16:36.265: E/AndroidRuntime(851):  at java.lang.reflect.Method.invoke(Method.java:511)
03-22 14:16:36.265: E/AndroidRuntime(851):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-22 14:16:36.265: E/AndroidRuntime(851):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-22 14:16:36.265: E/AndroidRuntime(851):  at dalvik.system.NativeStart.main(Native Method)
03-22 14:16:36.265: E/AndroidRuntime(851): Caused by: java.lang.NullPointerException
03-22 14:16:36.265: E/AndroidRuntime(851):  at com.example.finalprojectaddcontact.MainActivity.onCreate(MainActivity.java:31)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.Activity.performCreate(Activity.java:5104)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
03-22 14:16:36.265: E/AndroidRuntime(851):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
03-22 14:16:36.265: E/AndroidRuntime(851):  ... 11 more

你不应该在 Activity 上调用 getFragmentManager(),而不是片段吗?

而不是 fragment.getFragmentManager().beginTransaction() 尝试调用 getFragmentManager().beginTransaction()

API参考:https://developer.android.com/reference/android/app/Activity.html#getFragmentManager()