카카오톡 앱이 폰에 깔리지 않은 상태에서 로그인 요청을 하면 오류가 나는데요
Session.getCurrentSession().open(authTypes.get(0), WebView.this);
소스에 이부분에서 오류가 납니다.
물론 카카오톡 앱이 폰에 깔려있으면 오류가 나지 않습니다.
제가 페이스북, 구글, 트위터 전부 붙여봤는데 해당 앱이 안깔려있어도
로그인 진행이 가능하더라구요…
오류로그는 handler 에러로 보였는데 원인은 그게 아닌거같습니다.
여기 글 올라온 내용중에도 저와같은 문제로 질문 주신분 있던데 답이 없더군요
로그는 없나요? 그리고 authTypes 이건 어떤값으로 주셨나요??
SessionConfig에 AuthType.KAKAO_LOGIN_ALL 을 주었습니다.
로그는
01-28 15:51:33.737: E/kakao.sdk(28891): WebViewAuthHandler is failed
01-28 15:51:33.737: E/kakao.sdk(28891): java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()
01-28 15:51:33.737: E/kakao.sdk(28891): at android.os.Handler.(Handler.java:200)
01-28 15:51:33.737: E/kakao.sdk(28891): at android.os.Handler.(Handler.java:114)
01-28 15:51:33.737: E/kakao.sdk(28891): at android.app.Dialog.(Dialog.java:111)
01-28 15:51:33.737: E/kakao.sdk(28891): at android.app.Dialog.(Dialog.java:153)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.authorization.authcode.KakaoWebViewDialog.(KakaoWebViewDialog.java:95)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.authorization.authcode.GetterAuthCode.requestWebviewAuth(GetterAuthCode.java:197)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.authorization.authcode.GetterAuthCode.request(GetterAuthCode.java:165)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.authorization.authcode.GetterAuthCode.start(GetterAuthCode.java:96)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.Session.requestAuthCode(Session.java:539)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.Session.internalOpen(Session.java:511)
01-28 15:51:33.737: E/kakao.sdk(28891): at com.kakao.auth.Session.open(Session.java:141)
01-28 15:51:33.737: E/kakao.sdk(28891): at android.os.AsyncTask$2.call(AsyncTask.java:288)
01-28 15:51:33.737: E/kakao.sdk(28891): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-28 15:51:33.737: E/kakao.sdk(28891): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
01-28 15:51:33.737: E/kakao.sdk(28891): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
01-28 15:51:33.737: E/kakao.sdk(28891): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
01-28 15:51:33.737: E/kakao.sdk(28891): at java.lang.Thread.run(Thread.java:818)
01-28 15:51:33.737: E/kakao.sdk(28891): GetterAuthorizationCode : Failed to get Authorization Code.
입니다.
WebViewAuthHandler 이것은 handler를 상속한 클래스로 보이는데요. 핸들러를 생성을 하시기 위해선 main thread에서 생성을 하셔야 합니다. 백그라운드 스레드에서 생성을 하고자 할때면 handler에 main looper를 넣어주던지요.
에러로그만 봐서는 handler를 backgound thread에서 생성을 해서 runtime시에 에러가 발생한것으로 보이네요