안드로이드 카카오로그인 시 flag_activity_new_task 에러

안녕하세요
카카오 로그인 API 를 사용하고 있는데요

코딩은 자바로 하고 있습니다.

문서에서는 로그인시 코틀린으로

LoginClient.instance.loginWithKakaoTalk(context) { token, error ->
if (error != null) {
Log.e(TAG, “로그인 실패”, error)
}
else if (token != null) {
Log.i(TAG, “로그인 성공 ${token.accessToken}”)
}
}

이렇게 설명 되어있는데
–자바로

LoginClient.getInstance().loginWithKakaoTalk(getApplicationContext(), (oAuthToken, throwable) -> {

        Log.e(TAG, "kakao OAuthToken throawable : " + throwable.getMessage());

        if (oAuthToken != null) {
            Log.e(TAG, "kakao OAuthToken : " + oAuthToken.getAccessToken());
        }else {
            Log.e(TAG, "kakao OAuthToken is null");
        }

        return null;
    });

이렇게 코딩하여 테스트 하고 있습니다.

로그캣에서는

kakao OAuthToken throawable : Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

이렇게 에러가 나오는데 확인 부탁 드립니다.

@anon30454146
context 로 getApplicationContext() 를 넘기고 계신데

Activity를 넘기셔야 합니다.

안녕하세요.
문의글을 보다가 궁금한 점이 있어서 댓글 남깁니다.

해당 함수 내용을 보면…
이렇게 되어 있습니다.

UseApiClient.kt →

fun loginWithKakaoTalk(
context: Context,
requestCode: Int = AuthCodeClient.DEFAULT_REQUEST_CODE,
nonce: String? = null,
channelPublicIds: List? = null,
serviceTerms: List? = null,
callback: (token: OAuthToken?, error: Throwable?) → Unit,
)

함수의 파라미터 값의 타입이 context인데, 액티비티를 넘겨야 하는 이유는 뭘까요?
로그인 api 문서에도 컨텍스트로 되어 있지 않나요??

그리고, 파라미터에 액티비티를 넣으면 에러가 나지 않나요?

설명 좀 부타드립니다.

안녕하세요

말씀하신 것처럼 context를 넘겨야하는 것이 맞습니다.
그런데 안드로이드의 Activity는 Context를 상속한 클래스이기 때문에 Activity를 파라미터로 사용해도 문제 없습니다.