반응형

분류 전체보기 300

안드로이드 context란?

Context? 이름에서 알 수 있듯이 응용 프로그램/개체의 현재 상태에 대한 컨텍스트입니다. 새로 생성된 개체가 진행 중인 작업을 이해할 수 있습니다. 일반적으로 프로그램의 다른 부분(활동 및 패키지/응용 프로그램)에 대한 정보를 얻기 위해 호출합니다. getApplicationContext(), getContext(), getBaseContext() 또는 this(Application, Activity, Service 및 IntentService 클래스와 같이 Context에서 확장되는 클래스에 있는 경우)를 호출하여 컨텍스트를 가져올 수 있습니다. 컨텍스트의 일반적인 용도: 새로운 objects를 만들때 사용: Creating new views, adapters, listeners: TextView..

안드로이드 키패드 숨기는 방법. InputMethodManager

안드로이드 앱을 개발하다보면 입력란에 글자를 모두 입력하고 키패드를 숨기고 싶을때가 있습니다. 이럴때는 아주 간단히 API를 사용해서 숨기기가 가능합니다. 1. 키패드가 나오는 화면 아래 그림처럼 글자를 입력하려고하면 발생하는 입력기를 코드에서 숨기는 방법을 공유합니다. 2. 해결 코드 -. 해결 코드는 아주 간단합니다. 아래 코드를 복사해서 붙인 다음 hide()함수를 호출해주는 순간 키패드는 숨게 됩니다. void hide() { InputMethodManager imm = (InputMethodManager) this.getSystemService(Activity.INPUT_METHOD_SERVICE); //Find the currently focused view, so we can grab the..

java.lang.ClassCastException: androidx.emoji2.text.SpannableBuilder cannot be cast to java.lang.String

안드로이드 문자열 값을 다루다 보면 가끔 마주치는 에러입니다. 예를들면 char 형태의 값에 string Casting 할 때 발생하곤 합니다. 아래 예제를 보면서 해결 책을 공유드립니다. 1. 오류 로그 -. 문제 발생시 아래처럼 SpannableBuilder cannot be cast to java.lang.String 이라는 문구가 발생합니다. 2. 예제 코드 (오류 포함) -. 아래 파란색으로 마킹된 부분에서 에러가 발생합니다. CharSequence 타입인 s를 string으로 casting 하기 때문입니다. 실제로 이 문제를 해결하는 방법은 아주 간단합니다. 3. 해결 방법 -. 이 해결 방법은 꼼수(?)가 아니라 정식 해결 방법입니다. 보기엔 조금 이상해보이지만, 실제 코드를 따라가보면 아주..

안드로이드 px, dip, dp 와 sp 차이 설명

안드로이드 개발할때 쓰는 단위가 여러가지가 있습니다. 예를들어 layout 에서 textview의 위치나 크기를 입력할때는 dp를 쓰고 있습니다. 글씨의 크기를 지정할때는 sp를 사용하고 있습니다. 이런 용어들을 정리해봤습니다. 우선 아래 예제를 보면 sp, dp, pt를 사용하는 예제를 확인할 수 있습니다. 실제 layout 정보는 아래와 같습니다. 이제 각 단위에 대해 알아보겠습니다. 1. px -. 픽셀 - 화면의 실제 픽셀에 해당합니다. 2. in -. 인치 - 화면의 물리적 크기를 기준으로 합니다. 1인치 또는 2.54센티미터 3. mm -. 밀리미터 - 화면의 물리적 크기를 기반으로 합니다. 4. pt -. 포인트 - 화면의 실제 크기를 기준으로 1/72인치입니다. 5. DP 또는 dip -...

[수정완료] FAILURE: Build failed with an exception.

안드로이드 개발중에 종종 발생하는 에러입니다. 아래처럼 android studio setting에서 Gradle User home 을 변경하면 해결이 되는 경우가 많습니다. 아래 1번 2번 3번 중 하나는 해당 문제 해결이 대부분 가능합니다. 1. gradle user home 메뉴를 이용해 해결하는 방법 File -> Settings 를 누릅니다. Build Tools -> Gradle -> Gradle User home 메뉴의 폴더 모양의 아이콘을 클릭합니다. 이후 .gradle을 현재 열려있는 프로젝트의 .gradle을 선택합니다. 2. Gradle version up 하는 방법 -. 아래의 JDK선택하는 메뉴에서 원하느 gradle 버전을 선택해서 sync up 하면 해결이 됩니다. 3. Sync..

OutOfMemoryException 해결 방법

에러 이름에서 알 수 있듯이 메모리가 부족한 상태에서 나오는 exception입니다. Exception in thread “main”: java.lang.OutOfMemoryError: Java heap spac Heap size의 부족으로 Java Object를 Heap에 할당하지 못하는 경우. Exception in thread “main”: java.lang.OutOfMemoryError: PermGen space Class나 Method 객체를 PermGen space에 할당하지 못하는 경우 발생 애플리케이션에서 너무 많은 class를 로드할 때 발생한다. 주로 잘못된 설계/구현에 의해 발생한다. -XX:PermSize, -XX:MaxPermSize Option을 이용하여 오류를 수정하기도 한다...

IOException 해결 방법

안드로이드 개발시 흔하게 보이는 에러중에 하나입니다. 보통 입출력 관련 에러에서 흔하게 발생합니다. 예를 들면 파일을 기록하거나 읽어올때 발생합니다. 사실, 개발하다보면 여러가지 경우에 발생하는게 바로 IOException입니다. 1. 에러 -. 아래는 에러 발생시의 로그입니다. error: unreported exception IOException; must be caught or declared to be thrown input.readLine(); 2. 에러 코드 (오류 포함) 3. 해결 방법 -. 위 에러의 경우는 에러 발생 가능성이 있는 부분에 throw 처리를 안하고 있기 때문입니다. 아래처럼 throw 할 수 있는 exception을 추가해주면 문제는 자연스럽게 해결이 됩니다. 4. 백서 (..

Default Activity not found 해결 방법

안드로이드 개발중에 아래처럼 Could not identify launch activity: Default Activity not found 이라는 에러 메시지를 보게 된다면 간단히 해결할 수 있는 해결 방법을 공유합니다. 1. 에러 로그 -. Could not identify launch activity: Default Activity not found Error while Launching activity Failed to launch an application on all devices 2. 에러 코드 -. java / kt 파일에선는 에러의 원인을 찾을 수 없습니다. AndroidManifest.xml에 보면 그 원인을 찾을 수 있습니다. 위 XML 파일을 보게 되면 .MainActivity를 정..

error: unreachable statement 해결 방법

android app을 개발하다보면 종종 접하는 에러입니다. 빌드 환경의 문제는 아니고 일반적으로 code flow에서 도달하지 못하는 부분이 있을때 발생합니다. 아래 간단한 설명과 해결 방법을 공유합니다. 1. 코드 (오류 포함) -. 아래 코드에서 보면 log.d ~~~ 로 시작하는 라인에서 빨간색 오류가 보입니다. 이 부분이 코드를 빌드하고 실행시켜도 도달하지 못하는 라인입니다. 바로 위 throw new IOException에서 이미 catch문안의 e.printstacktrace를 실행하고 종료되기 때문입니다. 2. 에러 로그 -. 아래처럼 unreachable statement라고 표시가 됩니다. 3. 해결 방법 -. 아주 간단히 해결이 되는 에러입니다. throw new 이후에 코드는 어차피..

The project uses Gradle 4.4 which is incompatible with Java 11 or newer.

안드로이드 개발을 하다보면 오래된 프로젝트를 gihub에서 얻어오는 가져와 재활용하는 경우가 있습니다. 이때 프로젝트가 너무 예전 세팅이라서 현재 빌드 환경에서 컴파일이 안되는 경우가 발생합니다. 이때 대처 방법을 소개합니다. 파란색으로 표시된 Upgrade Gradle wrapper 를 선택하면 아래와 같이 업그레이드를 시작하게 됩니다. 위처럼 진행해되 안된다면 아래처럼 settings메뉴에 들어가서 추가작업을 해주면 됩니다. Files -> Settings 2. Settings -> Build, Execution -> Build Tools -> Gradle 이 메뉴에 들어가면 Gradle JDK 버전을 선택하는 리스트가 있습니다. 원하는 jdk 버전을 선택해주면 됩니다. -. 아래처럼 리스트가 표시되..

반응형