반응형

안드로이드 개발 92

java.lang.IllegalThreadStateException 해결 법

안드로이드 개발시 java.lang.IllegalThreadStateException 라는 에러를 마주치고는 한다. thread 를 여러번 호출할때 주로 발생하게 되는데 아래 예제 코드를 참고하면 됩니다. 해결방법은 쉽지만 어려운 케이스도 존재합니다. 여러분의 에러가 쉬운 케이스이길 바래봅니다. 1. 오류 코드 (에러) -. 아래 코드를 보면 onCreate에서 thread 를 만들고, start 함수를 이용해 2번 호출하고 있습니다. 이렇게 2번 연달아 thread를 호출하게되면 에러가 발생하게 됩니다. 2. 오류 로그 -. 아래처럼 java.lang.IllegalThreadStateException 익셉션을 안드로이드 스튜디오에서 출력하게 됩니다. 3. 해결 방법 -. 해결법은 아주 심플하게 한번만 ..

java.lang.UnsupportedOperationException 해결 법

개발중에 java.lang.UnsupportedOperationException라는 에러를 보게 된다면 아래처럼 해결해보세요. 1. 오류 코드 (문제 코드) -. 아래 코드를 보면 plusNumber함수에서 배열을 추가하고 있습니다. 2. 오류 로그 -. 실제 실행하고 나면 아래와 같이 에러를 표출하게 됩니다. 3. 해결 방법 아래처럼 코드를 수정하게 되면 문제를 깨끗이 해결됩니다. 파란색 바탕색으로 작성된 코드를 주목해주세요. 4. 해결후 logcat 내용 *. 에러 원문 FATAL EXCEPTION: main Process: com.picker.javaexception, PID: 21186 java.lang.RuntimeException: Unable to start activity Component..

java.lang.SecurityException: Permission Denial: starting Intent 해결

안드로이드 개발하다보면 마주치는 에러 exception입니다. 1. 예제 코드 (오류 포함) androidManifest.xml 2. 해결 방법 -. 해결 방법은 아주 간단합니다. androidmanifest.xml에서 아래와 같이 exported를 추가해주면 됩니다. 파란색 배경 글씨로 쓴 부분을 주목해주세요. *. 아래는 해당 익셉션의 원문입니다. 참고하세요. Thrown by the security manager to indicate a security violation. See also: SecurityManager Summary Public constructors SecurityException Added in API level 1 Constructs a SecurityException with..

StringIndexOutOfBoundsException 해결 방법

안드로이드 앱 개발중에 StringIndexOutOfBoundsException 에러를 발견하게 되는경우가 있습니다. 해당에러는 아주 단순한 에러라서 바로 해결이 가능합니다. 아래 에러 원인 및 해결 방법을 참고하세요. 1. 예제 코드 (오류 코드) -. 아래 예제 코드에서 파란색 마킹된 부분이 에러의 원인입니다. 기존 munja String은 3글자이지만, substring으로 4글자를 가져오려고 합니다. 당연히 에러가 발생하게 됩니다. 2. 에러 로그 3. 해결 방법 -. 아주 간단히 substring을 할때 문자열 길이 값인 3까지만 하면 해결됩니다. 아래 파란색 마킹된 부분을 참고하세요. *. 에러 로그 원문 FATAL EXCEPTION: main Process: com.picker.javaexc..

NumberFormatException 해결 방법

안드로이드 자바 개발을 하다보면 NumberFormatException 을 마주치는 경우가 흔하다. 이는 변수의 타입을 잘못 캐스팅할때 주로 발생하게된다. 1. 예제 (오류 코드) 아래의 오류 코드를 보면 munja라는 문자열 변수를 int 값으로 변경하기 위해 캐스팅을 시도했다. "123"과 같은 숫자형은 int 로 캐스팅이 가능하지만, 알파벳과 같은 문자열은 불가능하다. 이때 발생하는것이 NumberFormatException 이다. 2. 문제 로그 3. 해결 방법 아래처럼 타입에 맞게 숫자형으로 문자열이 입력되면 해결이 됩니다. *. 문제로그 원문 E FATAL EXCEPTION: main Process: com.picker.javaexception, PID: 19061 java.lang.Runti..

NoSuchMethodException 해결법

안드로이드 앱 개발을 하다보면 NoSuchMethodException 이라는 에러를 마주치고는 한다. 해당 에러는 관련 함수 (method)를 못찾는 경우이며, 여러 케이스가 존재한다. 이에대한 해결책은 아래와 같다. 1. 실제로 함수가 없는 경우 이 경우는 아주 쉽고 단순하여 plusNumber라는 함수를 추가로 지정해주면 바로 해결이 된다. 2. 메소드 호출시 이름 오류 아래에서는 plus 이후 n을 대문자로 작성해야하는데 소문자로 작성한 경우입니다. 3. 라이브러리의 api를 못찾는 경우 여기서부터는 난이도가 올라가게된다. 단순하게 찾을 수 없는 경우가 있으며, API의 백서(white paper)가 없으면 바로 찾기가 어려운 경우도 있다. 이럴때는 해당 라이브러리를 직접 열어보거나 참조가 잘되어있..

java.lang.ArrayStoreException 간단 해결 방법

안드로이드 개발을 하다보면 java.lang.ArrayStoreException 익셉션을 마주치는 경우가 있다. 이때 아주 간단히 해결 하는 방법을 공유합니다. 1. 문제점 발생 1-1. 예제 코드 (문제 발생) 1-2. 실행시 문제 로그 2. 해결 방법 2-1. 변수 형식에 맞게 integer로 모두 통일 시킨다. 2-2. exception 추가 해서 해결 *. 관련 코드는 아래와 같습니다. 복붙할때 쓰세요. package com.picker.javaexception; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; public class MainActivity extend..

[해결완료] java.lang.ArrayIndexOutOfBoundsException

안드로이드 앱을 개발하다보면 배열을 사용하면서 에러 (exception)이 발생하곤 합니다. 이때 간단히 에러처리하는 방법 공유합니다. 아래처럼 배열 코드를 작성했을때 실행하면 에러가 발생합니다. 실제 실행하고 나면 아래처럼 array index 에러가 발생합니다. 에러가 발생하는 사유는 실제 fruit 배열에 넣은 아이템은 4개인데, while (i < 5) 코드에서 (0,1,2,3,4) 이렇게 5개를 사용하기 때문입니다. 해결 방법1 while (i < 5) 를 while (i < 4) 로 변경합니다. 해결 방법2 이번 예제와 다르게 array값이 몇개 들어올지 모르는 경우이고, 앱이 멈추는 현상만 없으면 문제 없는 경우에는 아래처럼 exception 코드를 추가하면 간단히 해결이 됩니다. 아래는 실..

[해결완료] Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

안드로이드 스튜디오를 업데이트하거나 안드로이드 프로젝트의 그래들 버전을 변경할때 주로 나오는 이슈입니다. 이 이슈를 가장 빨리 수정하는 방법은 프로젝트 그래들 버전과 안드로이드 스튜디오 그래들 버전을 맞추는것입니다. 아래 표는 안드로이드 스튜디오 버전과 필요한 플러그인 버전의 관계입니다. 이제 수정해봅시다. 1. 수정 파일 : build.gradle 2. 수정 위치 : dependencies 중괄호안의 Class path , gradle version 3. 수정 방법 : 해당 위치의 그래들 버전을 위표에 맞게 수정합니다. 문제가 해결되는것을 볼 수 있습니다.

AGP upgrade Android Gradle Plugin 업그레이드란?

안드로이드 스튜디오에서 개발을 하다보면 아래 화면처럼 AGP upgrade 노티가 뜰때가 있습니다. 안드로이드에서는 Android Gradle을 편리하게 업그레이드 할 수 있도록 도와주는 기능이 있습니다. 이 기능의 이름이 AGP이며, Android Gradle Plugin 의 약자입니다. 해당 팝업이 뜬다면 무조건 수락하지 말고, 현재 프로젝트 폴더 전체를 복사해서 백업을 해놓아야 합니다. 안드로이드 개발자라면 잘 알겠지만, gradle 빌드에러는 자주 발생하고 고치기가 쉽지 않을때가 있습니다. 특히 신규로 발행된 gradle 같은 경우는 에러 해결 방법 찾기가 까다롭습니다. 실제 업그레이드 시작을 하게되면, 아래처럼 자동으로 진행됩니다. 이렇게 sync 하는 작업이 끝나면 아래처럼 최종 컨펌이 나옵니..

반응형