마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

페이스북 로그인 연동 sdk 에러

0 추천

어플을 만들려는데 이 어플 로그인을 페이스북 계정으로 할 수 있게 하고싶어요.

그래서 facebook sdk연동을 하고 있는데 이 부분에서 자꾸 오류가 나요

프로젝트 속성에서 FacebookSDK를 추가해주면 스샷처럼 에러들이 막 뜹니다.  다시 SDK를 삭제해주면 괜찮아지는데 어떻게 해야 되나요?

옛날 버전은 안 이런거 같은데 Activity 상속하다가 ActionBarActivity 상속하고 onCreateOptionsMenu, onOptionsItemSelected 등 새로 생긴것들이 많고 appcompat_7이란게 생기는데 이것 때문에 그러는 것 같아요.

인터넷에 찾아보면 페이스북 로그인 연동하는건 전부 이전 버전들이라 저런 에러에 대해선 아무 말이 없는데 어떻게 해야하나요?

익명사용자 님이 2014년 7월 29일 질문

1개의 답변

0 추천
public class MainActivity extends ActionBarActivity {

	private static final String TAG = "LOGIN";
	
	private UiLifecycleHelper uiHelper;
    private Session.StatusCallback callback = new Session.StatusCallback() {
        @Override
        public void call(final Session session, final SessionState state, final Exception exception) {
            onSessionStateChange(session, state, exception);
        }
    };
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		uiHelper = new UiLifecycleHelper(this, callback);
	    uiHelper.onCreate(savedInstanceState);
	    
		LoginButton authButton = (LoginButton) findViewById(R.id.authButton);
		authButton.setReadPermissions(Arrays.asList("basic_info","email"));

	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
    public void onResume() {
        super.onResume();
        uiHelper.onResume();
    }
 
    @Override
    public void onPause() {
        super.onPause();
        uiHelper.onPause();
    }
 
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }
 
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        uiHelper.onSaveInstanceState(outState);
    }
    
	private void onSessionStateChange(Session session, SessionState state, Exception exception) {
		if (state.isOpened()) {
	        Log.i(TAG, "Logged in...");
	    } else if (state.isClosed()) {
	        Log.i(TAG, "Logged out...");
	    }
    }
}

 

최신 Facebook SDK와 appcompat_v7을 이용하여 만들었습니다.

작동은 잘하네요.

 

(meta-data 추가하시는걸 잊지마세요.)

 

참고: https://developers.facebook.com/docs/android

참고: https://github.com/fbsamples/android-3.0-howtos

익명사용자 님이 2014년 7월 29일 답변
...