2013-12-20 29 views
4

我正在嘗試登錄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的問題,但沒有什麼幫助我。有人遇到過這樣的事嗎?我絕望地知道這意味着什麼。我迷失在這裏。任何幫助將受到高度讚賞的傢伙。

+0

你的應用程序ID在哪裏? – mayuri

+0

我已經添加了,在我的課程級別String app_id = getString(R.string.app_id);但是,我在指定的代碼中使用app_id?之前我實現了另一種登錄Facebook的方法,它的功能就像一個魅力,但現在已經被棄用了。 – San

+0

我知道我應該使用app_id讓Facebook認證我的應用,但Facebook文檔中的代碼不顯示這樣的包含!我完全迷失在這裏。 – San

回答

6

提到你的應用程序ID在這樣的menifest文件。

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

謝謝mayuri。它有點工作,因此拋出一個新的錯誤爲NullPointerException。我試圖找出它發生的路線。再次感謝。 – San

+0

你發現了嗎??? – mayuri

+0

還沒有。調試器甚至沒有在MainActivity的OnCreate()中達到我的初始中斷點。所以我無法找到?對此有何見解?請欣賞你的關心。 – San

相關問題