android studio

    A problem occurred configuring root project 'Unscramble'.> Could not resolve all files for configuration ':classpath'. 오류해결

    개요 android codelab (https://developer.android.com/codelabs/basic-android-kotlin-compose-viewmodel-and-state?hl=ko#2) 수행 중 android studio 버전 업데이트가 필요하다는 메세지를 보고 업데이트 수행 (dolphin -> flamingo) 이후 codelab 소스코드 Gradle project sync 실패 Compose의 ViewModel 및 상태 | Android Developers 이 Codelab에서는 아키텍처 구성요소 중 하나인 ViewModel을 사용하는 방법을 알아봅니다. 구성 변경 중에 앱 상태를 유지하도록 ViewModel을 구현합니다. developer.android.com 해결방법 ht..

    android studio에서 실행한 앱이 설치되지 않을 때

    최근 개발중인 사이드 프로젝트 앱에서 안드로이드 스튜디오를 통해 앱을 실행할 경우, 실행은 되지만 앱이 설치가 되지않는 현상이 있었다. 해당 이슈의 원인은 바로! AndroidManifest 파일에 있었는데 위의 인텐트 필터를 보면 MAIN, LAUNCHER와 함께 여러 값들이 있는데, MAIN, LAUNCHER에는 데이터 태그를 처리할 수 없다고 한다... 그래서 아래처럼 인텐트 필터를 분리시켜주면 된다고 한다. 이제 다시 설치해보자!! 정상적으로 앱이 설치된걸 확인했다. Reference : https://stackoverflow.com/questions/20285496/android-application-installed-but-wont-open-on-device Android Application..

    [Android Studio] Android Studio IDE에서 이미지 리소스 쉽게 얻기

    개요 안드로이드 스튜디오 IDE에서 쉽게 아이콘 이미지를 얻어오는 방법을 찾아서 포스팅합니다. 저같은 경우 주로 사용되는 픽토그램 이미지를 https://material.io/ 사이트를 자주 이용했었는데요, IDE 내에서도 쉽게 이미지 리소스를 검색하고 프로젝트에 적용할 수 있는 좋은 방법이 있습니다. Material Design Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences. material.io 먼저 안드로이드 스튜디오 상단 바의 Tools > Resource..

    [Android] 디버깅 중 크래시로 종료되었을 때 로그 보는법

    안드로이드 앱 개발 중 JNI측에서 발생한 크래시의 경우 크래시가 발생하면서 앱이 종료되고 다시 시작되는데, 이 때 크래시가 발생한 순간의 로그를 안드로이드 스튜디오 로그캣에서 확인할 수 없을 때가 있다. 이 로그를 확인하는 방법을 간단하게 알아보자. 1. 로그를 추출할 기기가 연결하기 2. adb shell bugreport > [로그저장위치][log.txt] 텍스트파일을 확인하면 JNI측에서 발생한 로그를 확인할 수 있다.

    [Android Studio] 안드로이드 프로젝트 병합, 한 프로젝트에서 빌드 변형 구성(Flavor)

    기존 안드로이드 프로젝트에서 free, paid Version 구성 또는 인앱 결제 모델, 구독 결제 모델을 나누는 방법으로 좋은 Flavor에 대해서 알아보겠습니다 ㅎㅅㅎ Flavor란 무엇일까? Flavor이란 Gradle에서 제공하는 옵션으로, Flavor를 통해 한 프로젝트에서 여러개의 빌드 버전을 생성할 수 있습니다. 필자는 안드로이드 개발 중 구독, 인앱 결제를 제외하고 같은 기능을 수행하는 프로젝트를 병합하기 위해 사용했습니다. Flavor를 통해 여러 빌드를 생성하는 방법 applicationIdSuffix는 프로젝트 패키지 마지막에 설정될 이름을 설정할 수 있습니다. 이 옵션을 통해 구글 플레이에 각각 다른 패키지 명으로 앱을 추가할 수 있습니다. manifestPlaceHolder는 A..

    [Android Studio] 안드로이드 스튜디오 테마 변경, 외부 테마 적용

    오늘은 오준석님의 생존코딩 강의를 듣던 중 함수와 인터페이스의 색상을 구분하는 테마를 사용하고 계셔서 이참에 테마를 변경 했습니다. 적용하고나니 더 코드 읽기가 좋아진 것 같네요 ㅎㅎ 바로 본문으로 이동 하겠습니다. 안드로이드 스튜디오 테마 변경 방법 File > Settings > Appearance & Behavior > Appearance 이동 후 Theme 선택 해주시면 됩니다. 별도의 테마를 설치하지 않으신 분은 저처럼 테마가 여러개 나오지 않으실 겁니다. 외부 테마를 사용하는 방법 Files > Settings > Plugins > "Material Theme UI" 검색 이 플러그인 설치 후 IDE를 재시작 하시면 위의 테마를 선택하는 부분에서 마음에 드는 테마를 선택하시면 됩니다. 제가 사..

    [안드로이드 스튜디오] 소프트키보드가 레이아웃에 영향을 줄 때 해결방법

    앱 개발을 하던 도중에 EditText에 포커스가 가면 레이아웃 크기가 작아지는 현상이 발생했다. 문제는 EditText에 포커스가 갈 때 올라오는 소프트 키보드가 레이아웃에 영향을 끼쳐서 크기가 작아지는 것 이었다.. Manifest 파일에서 문제가 생기는 해당 액티비티 내에 아래의 옵션을 주면 키보드가 해당 액티비티의 레이아웃에 영향을 끼치지 않았다! android:windowSoftInputMode="adjustNothing"

    [안드로이드 스튜디오] 앱 종료 후 재시작 시에 튕김, 비정상 종료 될 때

    앱 개발 도중 앱 실행 중에 종료 후, 다시 시작할 때 튕기는 현상이 있었다. 로그인을 한 후에 재 시작했을 때 발생해서 로그인 관련 문제인가 싶어 시도 해보다가, 앱이 완전히 종료되지 않아서 발생하는게 아닌가 싶어서 시도 해 봤는데, 완전히 종료된게 아니기 때문에 발생한게 맞는 듯 싶다. @Override public void onBackPressed() { // DrawerLayout 이 열려있을 경우에는 DrawerLayout을 닫는다 DrawerLayout drawer = findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(GravityCompat.END)) { drawer.closeDrawer(GravityCompat.END); } else {..

    [안드로이드 스튜디오] Google Map Api MyLocationButton, ZoomButton, UI 버튼 활성화, 비활성화, 커스텀 이벤트

    공부를 위해 포스팅 된 글이므로, 부정확한 정보를 포함하고 있음을 감안하고 읽어주시기 바랍니다. 오늘은 구글 맵에서 기본적으로 제공되는 UI 버튼들을 커스텀 해서 사용하고, 활성화, 비활성화 하는 작업을 했다. https://developers.google.com/maps/documentation/android-sdk/controls Controls and Gestures | Maps SDK for Android | Google Developers Using the Maps SDK for Android, you can customize the way in which users can interact with your map, by determining which of the built in UI comp..

    [안드로이드 스튜디오] Glide에서 가져온 이미지가 안 보일때

    공부를 위해 포스팅 된 글이므로, 부정확한 정보를 포함하고 있음을 감안하고 읽어주시기 바랍니다. GoogleMapApi에서 CustomInfoWindow를 구현 하는데 Glide에서 가져온 이미지가 마커를 두번 클릭해야 이미지가 보여지는 버그를 발견했다. 이것저것 찾아본 결과, Glide에서 이미지를 가져오는 속도가 느려서 발생한 것일수도 있다고 생각해서 Glide에서 이미지를 가져오는 부분을 수정하니 잘 작동했다. Glide.with(context). load(SAMPLEURL + mapDataItem.getPLACE_IMAGE()) .override(350,350) .diskCacheStrategy(DiskCacheStrategy.ALL) .thumbnail(0.1f) .centerCrop() .li..