Search code examples
androidfacebook

Unable to login to Facebook (Error - Application ID cannot be Null)


I am trying to login to Facebook and following the exact code given in the Facebook developers site. The application does not open up and says Application ID cannot be null.

EDIT :(Entire Code)

public class MainActivity extends FragmentActivity implements OnClickListener {
    TextView tv;
    ImageView facebookbutton, pic, b;
    Facebook fb;
    SharedPreferences sp;
    Thread t = new Thread();
    ImageView snap;
    JSONObject obj;
    private MainFragment mainfragment;
    private static final String TAG = "MainFragment";
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if(savedInstanceState == null)
            {
                mainfragment = new MainFragment();
                getSupportFragmentManager().beginTransaction().add(android.R.id.content,mainfragment).commit();
            }
            else
            {
                mainfragment = (MainFragment) getSupportFragmentManager().findFragmentById(android.R.id.content);
            }
        }

getSupportFragmentManager().. is the line where it throws the error. I have added the subclass MainFragment also.

MainFragment : (Continued after OnCreate() in the same class)

private class MainFragment extends Fragment
    {
        private UiLifecycleHelper uiHelper;
        public View onCreateView(LayoutInflater inflater, 
                ViewGroup container, 
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.dummy, container, false);
            LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
            authButton.setFragment(this);
            return view;
        }
        private void onSessionStateChange(com.facebook.Session session, SessionState state, Exception exception) {
            if (state.isOpened()) {
                Log.i(TAG, "Logged in...");
            } else if (state.isClosed()) {
                Log.i(TAG, "Logged out...");
            }
        }
        private com.facebook.Session.StatusCallback callback = new com.facebook.Session.StatusCallback() {

            @Override
            public void call(com.facebook.Session session, SessionState state,
                    Exception exception) {
                onSessionStateChange(session, state, exception);

            }
        };
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            uiHelper = new UiLifecycleHelper(getActivity(), callback);
            uiHelper.onCreate(savedInstanceState);
        }
        @Override
        public void onResume() {
            super.onResume();

            uiHelper.onResume();

        }

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            uiHelper.onActivityResult(requestCode, resultCode, data);
        }

        @Override
        public void onPause() {
            super.onPause();
            uiHelper.onPause();
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
            uiHelper.onDestroy();
        }

        @Override
        public void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            uiHelper.onSaveInstanceState(outState);
        }
        }
    }

Logcat :

12-20 11:52:32.690: E/AndroidRuntime(3652): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.facebook_integration/com.example.facebook_integration.MainActivity}: java.lang.NullPointerException: Argument 'applicationId' cannot be null
12-20 11:52:32.690: E/AndroidRuntime(3652):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-20 11:52:32.690: E/AndroidRuntime(3652):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2099)
12-20 11:52:32.690: E/AndroidRuntime(3652):     at android.app.ActivityThread.access$600(ActivityThread.java:138)
12-20 11:52:32.690: E/AndroidRuntime(3652):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)

I am trying to figure out the issue but nothing in the logcat is helping me. Has anybody come across something like this ? Am desperate to know what this means. I'm lost here. Any help would be highly appreciated guys.


Solution

  • mention your Application id in menifest file like this.

    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="app_id"/>