Apple is Apple
[Android] Compose - layout error
Android/Trouble Shooting 2023. 12. 29. 17:17

Compose 레이아웃 관련 에러 LazyHorizontalGrid를 사용하면서 java.lang.IllegalArgumentException: LazyHorizontalGrid's height should be bound by parent. 에러를 발견하였다. 에러내용은 해당 컴포즈 UI가 부모 레이아웃에 높이에 맞지 않다는 내용이였다. 이 에러가 발생하게 된 계기가 Column(modifier.verticalScroll(rememberScrollState()) // 이 부분) { // Spacer를 통해 공백 생성 Spacer(Modifier.height(16.dp)) // 검색 창 SearchBar(Modifier.padding(horizontal = 16.dp)) // 첫번째 섹션 HomeSect..

article thumbnail
[Android] GPS 상태 확인
Android/Trouble Shooting 2023. 11. 23. 13:51

GPS 상태 확인 원인 기기의 GPS가 꺼져 있을 떄, 위치 권한을 획득하여 좌표를 구할 떄 null 값이 발생해 앱이 꺼지는 현상이 있었다. GPS가 켜져 있지 않은데, 좌표를 가져오려다 보니 생기는 현상이였다. 해결 과정 해결하기 위해 위치 권한을 가져오기 전에 GPS 상태를 확인 할 필요가 있었다. 그래서 먼저, GPS 가 켜져있는지 확인하는 변수를 두었다. 그리고 앱을 시작할 때 checkGPSStatus라는 메소드를 만들어 GPS 상태를 확인했다. GPS 상태는 LocationManager의 isProviderEnabled(LocationManager.GPS_PROVIDER)를 통해 확인 할 수 있었다. isGpsOn 변수를 이용하여 위치를 가져오기 전 isGpsOn 값을 확인한다. 만약 GPS..

[Android] 앱 출시 후 카카오 맵이 보이지 않는 현상
Android/Trouble Shooting 2023. 11. 22. 14:07

원인 앱을 플레이스토어에 게시하고 직접 다운로드를 받아 확인하던 중, 카카오맵이 뜨지 않는 현상을 발견하였다. 구글 플레이 개발자 콘솔에서 Google play app signing 기능을 활성화 시켰다면 구글 플레이에 앱이 릴리즈되기 전에 개발자의 로컬 개발 환경에서 릴리즈 키스토어의 시그너쳐가 삭제되고 구글 서버에 저장되어 있는 사이닝키의 시그너쳐로 교체된다. 그렇기 때문에 이 사이닝키로 생성한 키해시 또한 등록해줘야 되는 것이 원인이였다. (구글 키로 사용한 이유는 내 개인 키스토어는 잃어버리거나, 비밀번호를 까먹거나 하는 휴먼 에러때문에 서버에 저장되는 구글 키를 사용) 해결 과정 구글 플레이 콘솔에 있는 SHA-1키를 가져와서 카카오 키 해시로 등록을 해주었더니 해결 되었다. 카카오 키해시는 b..

[Android] LifeCycle 관련
Android/Trouble Shooting 2023. 8. 15. 01:35

https://aaapple.tistory.com/54#article-1-1--troubleshooting 내일배움캠프 7기 Android TIL 22일차 (2023.08.14) 일일회고 입문 프로젝트가 시작되었다. 동시에 선발대 2주 차도 진행되어 과제가 부여되었다. 프로젝트 회의, 개발 , 선발대 과제 등 할 것들이 많아졌다. 시간분배를 잘하여 모두 큰 문제없이 aaapple.tistory.com

[!] ClassCastException
Android/Trouble Shooting 2023. 8. 3. 15:06

어제 과제를 하다가 뻘짓을 한게 떠올라 글을 써본다. 구현했으니 이제 확인해봐야지~ 하고 실행을 시키는데 앱이 계속 꺼진다.. 분명? 틀린 것이 없다고 생각했는데 자꾸 꺼졌다 (흔한 맞왜틀) 로그캣을 살펴봤다... java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to android.widget.Button 위 에러가 발생했다. constraint layout은 Button 타입으로 캐스팅 될 수 없다는 의미인데.. 레이아웃이 위젯의 상위타입이 아니니...당연한 것이였다. 처음엔 코드를 다시 살펴봤는데 코드는 문제가 없어보였다. 그래서 xml로 가서 일일히 살펴보았다.... 원인은 여기..