Search code examples
androidfragmentfragmenttransaction

FragmentTransaction Null pointer Exception?


Here is my OncreateView

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

}

And here's my OnCreate in MainActivity

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();
    }

Stack Trace:

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.access$600(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

Solution

  • Shouldn't you call getFragmentManager() on the Activity, not the fragment?

    instead of fragment.getFragmentManager().beginTransaction() try calling getFragmentManager().beginTransaction()

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