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.
mention your Application id in menifest file like this.
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="app_id"/>