我正在嘗試登錄Facebook並遵循Facebook開發人員網站中給出的確切代碼。應用程序無法打開並且說應用程序ID不能爲空。無法登錄到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的問題,但沒有什麼幫助我。有人遇到過這樣的事嗎?我絕望地知道這意味着什麼。我迷失在這裏。任何幫助將受到高度讚賞的傢伙。
你的應用程序ID在哪裏? – mayuri
我已經添加了,在我的課程級別String app_id = getString(R.string.app_id);但是,我在指定的代碼中使用app_id?之前我實現了另一種登錄Facebook的方法,它的功能就像一個魅力,但現在已經被棄用了。 – San
我知道我應該使用app_id讓Facebook認證我的應用,但Facebook文檔中的代碼不顯示這樣的包含!我完全迷失在這裏。 – San