문제점 switch문에서 case에 뷰 아이디 값인 R.id.뷰아이디를 쓰면 나타난다. 원인은 Gradle 8.0부터 뷰 아이디의 값들에 붙던 final이 붙지않아 상수가 아니여서 case에 사용할 수 없게되므로 경고가 나타난다. 해결법 뷰 아이디 값을 조건문에 비교값으로 쓸 때 switch문 대신 if/else문을 사용한다.
문제점 리사이클러 뷰의 데이터가 변경됐을 때 notifyDataSetChanged()로 UI를 갱신할 경우 발생한다. 해결법 notifyDataSetChanged()를 사용하기 보단 각 상황에 맞는 함수를 사용한다. notifyItemChanged(int) notifyItemInserted(int) notifyItemRemoved(int) notifyItemRangeChanged(int, int) notifyItemRangeInserted(int, int) notifyItemRangeRemoved(int, int) notifyDataSetChanged는 최후의 수단으로 사용할 것을 권한다. 해결법을 보고 든 개인적인 생각으론 notifyDataSetChanged는 리사이클러 뷰에 자식으로 들어갈 전체 데..
Mac(IOS, Android) 설치 바로가기 Window 10(Android) Flutter SDK 설치 stable 버전의 flutter sdk를 압축한 zip파일 다운로드 한 뒤 원하는 경로에 압축 풀기 압축 풀면 flutter 폴더가 생긴다. SDK 설치 링크 작성일시 기준으로 한글로 된 설치 페이지에선 설치 버튼이 비활성화 되어있어 설치가 되지 않는다. 환경 변수 추가 환경 변수에 압축 푼 경로\flutter\bin 을 추가 예시로 난 d드라이브에 압축을 풀었으므로 D:\flutter\bin 를 환경 변수에 추가했다. 환경 변수 설정 방법 링크 환경 변수 설정 확인 cmd 창 열어 flutter 명령어 입력해서 작동 여부를 통해 환경 변수 설정 확인 정상 작동한다면 여러 안내문구와 처음 입력시엔..
윈도우 단축키로 window + r 을 누르면 실행 창이 뜬다. 여기에 정확하게 sysdm.cpl ,3 를 입력한다. 소문자 엘과 쉼표 사이에 띄어쓰기도 입력되어야 한다. 확인을 누르면 시스템 속성창이 뜬다. 맨 아래에 오른쪽에 있는 환경 변수를 눌러 추가할 경로를 Path라는 변수에 값에 추가한다.
문제점 ubuntu 18.04에선 기본적으로 설치되는 파이썬 버전이 3.6인데 이 버전에서 pip 목록 출력 시 발생한다. 이 버전에서의 pip 목록 출력 방식(legacy)은 deprecation 되어서 언제 사라질 지 모르니 주의하라는 것 해결법 홈 디렉터리에 .pip 폴더 생성 후 pip.conf 파일에 아래 내용 작성 후 저장 [list] format=columns 간단하게 명령어 및 작성 내용만 적으면 아래와 같다. cd ~ mkdir .pip nano pip.conf --- pip.conf 내용 [list] format=columns --- 저장 후 닫음 위 명령 수행 및 내용을 작성한 뒤 저장한 후 다시 pip의 목록을 출력하면 현재의 pip 목록 출력 형식으로 보이며 경고가 없어진다. 참고..
문제점 다른 오픈소스 라이브러리를 가져다 쓸 때 빌드 실패하면서 발생했다. 오픈소스의 manifest와 내 앱의 manifest와 병합하는 과정에서 application 태그 내의 android:icon 속성의 값이 서로 달라 오류가 발생한 것으로 보인다. 오픈소스의 값은 @drawable/ic_launcher 내 앱의 값은 @mipmap/ic_launcher였다. 해결법 manifest 태그에 xmlns:tools="http://schemas.android.com/tools" 를 추가하고 applicatoin 태그에 tools:replace="android:icon" 를 추가한다.
API 30이상부터는 해당 버전부터 생긴 WindowMetrics이용 30미만은 이전 방식 그대로 사용 API 31부터 WindowMetrics사용을 권장하며 아래 메서드들이 deprecated 상태다. (링크) Display.getSize();// API 30부터 deprecated Display.getRealSize();