본문 바로가기
개발

[Android] 카카오톡 로그인 앱 중지

by 마스터누누 2017. 4. 18.
728x90
반응형


안드로이드에서 카카오톡 로그인을 구현 중

디바이스에서 켜지지도 않고 오류로 꺼지는 경우가 있다.


카카오톡 개발자 페이지에서 제공하는 샘플 소스를 사용한다고 가정 하였을 때

가장 큰 이유는 세션 초기화이다. 


대부분  Login Activity의

Session.getCurrentSession().addCallback(callback)

에서 오류가 발생하게 된다.


또한 로그를 확인해보면 오류 내용은 다음과 같다.


 

1
2
3
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxx.xxxx/com.xxxx.xxxx.xxxx.LoginActivity}: 
java.lang.IllegalStateException: Session is not initialized. Call KakaoSDK#init first.
 
cs


보시다시피 세션이 초기화 되지 않았다는 것이다.

왜 이런 오류가 발생할까.



 

1
2
3
4
5
6
7
8
    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
 
        KakaoSDK.init(new KakaoSDKAdapter());
    }
 
cs

 

 

다음은 샘플소스 중 GlobalApplication의 onCreate 메소드이다.

하단에 있는 KakaoSDK.init(new KakaoSDKAdapter())가 세션을 초기화한다.

해당 코드가 onCreate 내부에 있음에도 불구하고 다음과 같은 오류가 발생하였다는것은

GlobalApplication이 메니페스트에 제대로 등록되지 않았을 가능성이있다.




AndroidMenifest.xml


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.anew.kakao">
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:name=".GlobalApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="@string/kakao_app_key" />
        <activity android:name=".KakaoSignupActivity"/>
        <activity android:name=".MainActivity"/>
 
    </application>
 
</manifest>
 
cs


매니페스트를 통째로 옮겨 보았다.

8번째 줄에 GlobalApplication이 등록된 것을 확인할 수 있다.




카카오톡 개발자 페이지에서도 같은 증상에 다음과 같은 답변이다.

따라서 세션의 초기화가 원인일 확률이 크며,  다른 이유가 있을 수 있으니 샘플 코드를 확인해보기 바란다.  



참고 소스 :

http://blog.naver.com/aufcl4858/220783021359



반응형

댓글