Android Studio
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
[ 방법#1 ] getKeyHash() 메서드로 구현 private fun kakaoLoginStart(){ Log.d(TAG, "LoginActivity - kakaoLoginStart() called") // keyHash 발급 getKeyHash(this) // Kakao Login Session.getCurrentSession().addCallback(callback) Session.getCurrentSession().open(AuthType.KAKAO_LOGIN_ALL, this) // 세션 오픈을 진행 } private fun getKeyHash(context: Context) { try { val packageInfo = packageManager.getPackageInfo(packageNa..
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
[ 에러1 ] Firebase Users 정보로부터 사용자의 카카오 프로필사진을 불러오던 중에 에러가 발생했다. 그래서 그동안 미루고 미루던 Glide Module을 결국 하나 장만해야겠구나 싶어서 검색을 좀 해보았다. bad bitmap error when setting Uri [ 해결책 ] 1. gradle.properties android.useAndroidX=true android.enableJetifier=true 2. build.gradle(Module:app) plugins { id 'kotlin-kapt' } . . . dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' kapt 'com.github.bumptech..
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
*제가 공부한걸 기록하는 것이 목적이므로 중간에 빼먹은 프로세스가 있을 수 있으니 다른 블로그도 참고하세요. 드디어 카카오 로그인 마지막 포스팅이다! 이번에는 코틀린을 사용해서 클라이언트가 서버로부터 access token, custom token을 받아오고 다시 전달해서 사용자 인증 및 로그인 진행하는 방법을 알아보도록 하겠다. 전체적인 카카오 로그인 프로세스를 먼저 살펴보자. 1. node 서버 돌리기 (git bash창에서 $ node app.js 입력) *나중에 종료할 때는 ctrl+c 를 누르면 된다 2. LoginActivity.kt (로그인 버튼 클릭 시 kakaoLoginStart() 호출) 3. SessionCallback.kt (onSessionOpened() > onSuccess() ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bJ5Hco/btrc1vm231S/YsEkpk1JkbsVxKwDk9bkV0/img.png)
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
이번 포스트에서는 서버단에서 작업해주어야 할 것을 구현하고 준비해보도록 하겠다. 그리고 마지막으로 client 부분에서 구현해야 할 소스코드는 다음 포스트에서 다루도록 하겠다. [Kotlin][Firebase] Kakao Login 구현 #3 드디어 카카오 로그인 구현 마지막 포스팅이다! webit22.tistory.com [ 사전 준비 ] 1. OS : Windows 10 10.0 / VM: OpenJDK 64-Bit Server VM by Oracle Corporation 2. 안드로이드 스튜디오 (Runtime version: 11.0.10+0-b96-7249189 amd64), JDK 설치 3. 카카오 개발자 사이트 회원가입 및 프로젝트 등록 (kakao developers: https://dev..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/lXuiV/btrcOe76hjt/yVmyelEkqiDSOaFSvshFhk/img.jpg)
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
안드로이드 개발 시 자바가 여전히 대중적이라는 느낌을 많이 받았다. 코틀린 소스는 거의 안나와있어서 (내가 못 찾은걸수도..) 계속 삽질을 하다가 드디어 2주만에 결과물에 대한 포스팅을 하게 되었다. 서버 작업 : [Kotlin][Firebase] Kakao Login 구현 #2 클라이언트 작업 : [Kotlin][Firebase] Kakao Login 구현 #3 사용자를 인증하고 Firebase에 카카오 계정을 등록시키는 데에는 총 11가지 절차를 거쳐야하므로 생각보다 복잡하다. 하지만, 하나씩 뜯어서 살펴보면 이해가 잘 되길래 천천히 기록해보려 한다. 비전공자이자 서버를 공부한 적이 전혀 없는 내가 이해가 된다면 누구나 할 수 있을 것이다. 그리고 카카오 로그인만 구현한다면 소스코드가 간결하다. 하지..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/ov3uP/btrczKdavkH/atRcwhJfv7KUyp8nUJZ1HK/img.png)
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
에러 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo {com.example.tripplanner/com.example.tripplanner.LoginActivity}: java.lang.ClassNotFoundException... 이 에러는 Activity 시작 시 UI 화면을 로드할 수 없는 경우에 발생한다고 한다. 해결책 1. Android Studio 상단의 Build > Clean Project 클릭 후 Rebuild Project 클릭 2. Intent 부분의 문제일 수 있음. AndroidManifest.xml 파일 > 해당 activity 파일 추가하기 나는 LoginActivity가 이미 추가되어 있어서 ..
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
계속 아래와 같은 에러가 뜨는게 거슬려서 결국 구글링을 해보았다. Plugin version (1.5.21) is not the same as library version (1.3.72) 해결 방법: 1. build.gradle(Module:app) 만약 이걸로 잘 안되면 직접 $kotlin_version 부분을 1.5.21 로 변경 dependencies{ ... implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" ... } 2. build.gradle(Project) : 버전 1.5.21 로 맞춰줌 buildscript { ext.kotlin_version = "1.5.21" repositories { ... } depen..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bf7HDx/btrbLd1yDTx/kDstnGPoYblzgD4c946lyk/img.png)
![](https://tistory1.daumcdn.net/tistory/3503189/skin/images/no-image.jpg)
최근에 안드로이드 개발하면서 파이어베이스랑 연동하고 여러 dependency를 추가했더니 아래와 같은 빌드 에러가 떴다 Your project has set 'android.useAndroidX=true', but configuration 'debugAnnotationProcessorClasspath' still contains legacy support libraries, which may cause runtime issues. This behavior will not be allowed in Android Gradle plugin 8.0. 해결 방법: 안드로이드 스튜디오: Gradle Scripts > gradle.properties > android.enableJetifier=true 추가 > Sy..