我正在尝试登录Facebook并遵循Facebook开发者网站中给出的确切代码.应用程序无法打开,并说应用程序ID不能为空.
编辑:(整个代码)
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()..是它抛出错误的行.我也添加了子类MainFragment.
MainFragment :(继续在同一类的OnCreate()之后)
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)
我试图找出问题,但logcat中没有任何东西可以帮助我.有没有人遇到这样的事情?我不顾一切地想知道这意味着什么.我迷失在这里.任何帮助都会受到高度赞赏.
在menifest文件中提及你的应用程序ID.
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="app_id"/>