반응형

안드로이드 개발 92

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 간단 해결 방법

코딩을 하다보면 흔히 발생하는 에러로 NullPointerException이 있습니다. 현업에서는 주로 앞글자를 따서 NPE가 발생했다고 말하기도 합니다. NPE 문제를 해결하기 위한 가장 간단한 방법을 공유합니다. 1. 원인 -. API를 제공할때 Null 을 제공하여 문제 발생시 해결하도록 권장합니다. null이 있어서 프로그래머는 에러가 발생하는지 초기화가 필요한지 여부를 알게 됩니다. 하지만, 적절한 null 처리를 하지 않으면 이와 같이 에러만 발생합니다. 2. 해결방법 -. 아래 코드에서 보면 mopubView 객체를 null 확인을 하지 않고 destory 해서 에러가 발생합니다. @Override protected void onDestroy() { super.onDestroy(); moPu..

java.lang.IndexOutOfBoundsException 에러 간단 해결 방법

개발하다가 아래와 같은 에러 메시지가 발생할때 간단히 해결하는 방법을 공유합니다. 1. 에러 메시지 -. 에러 메시지로 배열의 크기가 0인데 0을 참조하려고 할때 발생한다. 배열에 1개 이상의 데이터가 있어야 참조가 가능하며, 0개일때는 에러를 발생하게된다. 아래는 개발중인 앱에서 발생한 에러이다. java.lang.IndexOutOfBoundsException Exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.get (ArrayList.java:437) at com.picker.megapicker.PredictActivity$predictNumber$1.invokeSuspend (PredictAc..

Manifest merger failed : Apps targeting Android 12 and higher 간단 해결 방법

안드로이드 앱 개발 중 os 버전을 올리다보면 아래와 같은 에러를 만나게 됩니다. 이때 가장 간단히 해결하는 방법 공유합니다. 1. 에러 -.아래와 같이 에러문구 발생합니다. 2. 원인 -. android os가 버전 업되면서 구성요소들의 보안을 높이기 위해 등장한 강제 에러입니다. 3. 해결 방법. -. Main Activity 즉 앱실행시 처음 실행되는 앱에 대해 exported를 true로 변경해주면 해결 됩니다. AndroidManifest.xml파일을 열어주고 아래 스크린샷의 파란색 하이라이트 처럼 exported를 true로 설정합니다. android:exported="true" 4. 관련 문서 4.1 에러 문구 Manifest merger failed : Apps targeting Andro..

Warning: Mapping new ns to old ns

안드로이드 스튜디어에서 앱 개발시 가끔 발생하는 경고문구입니다. 간단한 해결 방법을 공유드립니다. 1. 원인 -. gradle 버전이 오래되어 발생하는 에러 입니다. 2. 해결 방법 아래 2개 파일을 수정하고 gradle sync 하면 해결됩니다. 2.1 gradle의 버전을 최신으로 업데이트하면 이 경고는 사라지게 됩니다. android/build.gradle 파일에서 gradle 버전 수정합니다. 2.2 android/gradle/wrapper/gradle-wrapper.properties 파일에서 gradle버전 수정합니다. 2.3 gradle sync

Please remove usages of `jcenter()` Maven repository from your build 간단 해결 방법

안드로이드 앱을 개발하다보면 아래처럼 jcenter 경고가 발생하는 경우가 발생합니다. 이 경고를 없애는 가장 간단한 방법을 공유합니다. 1. 원인 -. jcenter repository이 앞으로는 deprecated되어 사용하지 않습니다. 이를 대신하는 repository는 Maven을 사용하도록 권장합니다. 2. 해결 방법 -. 단순히 build.gradle의 jcenter를 지워버리면 해결됩니다. 실제 프로젝트 빌드시 아무런 문제가 없으니, 걱정마세요. 3. 관련 정보 3.1 에러 문구 Please remove usages of `jcenter()` Maven repository from your build scripts and migrate your build to other Maven repos..

안드로이드 webview에서 특정 페이지가 열리지 않을 때 해결 방법

안드로이드 앱 개발시 webview에서 특정 페이지가 안열리는 현상들이 발생하곤한다. 특히 java script로 구성된 페이지들이 안열리는 경우가 대부분이다. 이럴때 java 와 kotlin에서 해결하는 방법에 대해 공유합니다. 1. 원인 -. 안드로이드 webview에서 java script에 대해서 실행가능하도록 설정해야합니다. 이는 보안설정의 이슈로 인하여 기본값은 false입니다. 아래는 안드로이드 개발 사이트에서 공식적으로 안내하는 내용입니다. 2. 해결방법 -. 아주 간단히 이 문제를 해결가능합니다. 2.1 java언어 WebView wv = findViewById(R.id.blogView); wv.getSettings().setJavaScriptEnabled(true); 2.2 kotlin..

Read timed out 빌드 에러 간단 해결 방법 안드로이드

안드로이드 앱을 만들어 빌드를 하다보면 에러창에 Read timed out 라는 문구를 내며 에러가 발생하는 경우가 있습니다. 아주 간단히 에러를 해결하는 방법이 있어 공유합니다. 1. 원인 -. 빌드하면서 특정한 이유로 read하는데 제한된 시간을 넘기면서 에러가 발생합니다. 2. 해결 방법 -. 아주 간단히 제한된 시간을 늘려서 해결이 가능합니다. gradle.properties 파일을 열어서 아래 두개 구문을 넣어주면 됩니다. systemProp.org.gradle.internal.http.connectionTimeout=180000 systemProp.org.gradle.internal.http.socketTimeout=180000 3. 관련 정보 -. Gradle이란 무엇인가? Gradle은 거..

java.nio.file.NoSuchFileException 간단 해결 방법

안드로이드 빌드 중에 java.nio.file.NoSuchFileException 라는 문구를 남기며 빌드에러가 발생하는 경우가 있다. 간단히 해결하는 방법을 공유합니다. 1. 해결 방법 -. 이전 빌드에서 발생한 오류들이 남아있어서 gradle build시 에러가 발생하는 경우이다. 기존 값을 지우고 다시 빌드하는 clean build가 필요하다. 코드 경로에서 .gradle 폴더를 지우고 다시 빌드를 하면 해결된다. 2. 관련 스크린샷 -. 아래는 .gradle 이 있는 스크린샷을 표시하였습니다. 별표를 참고하시면 됩니다. 3. clean build -. 위처럼 직접 지우는 방법외에도 android studio에서는 clean build를 할 수 있는 메뉴를 지원합니다. 아래 메뉴의 clean bui..

open failed: EACCES (permission denied) 간단 해결 방법

안드로이드 앱 개발시 open failed: EACCES (permission denied) 에러가 나온다면 아래 3가지를 시도해보면 해결된다. 1. 적절한 퍼미션 부여했는가? -. 아래 2개 퍼미션이 androidMafest.xml에 정의되어있는지 확인한다. 적용 후 모습은 아래 스크린샷과 같다. 2. requestLegacyExternalStorage 적용했는가? -. AndroidManifest.xml에 아래처럼 적용했는지 확인한다. android:requestLegacyExternalStorage="true" 적용 후 모습은 아래 스크린샷과 같다. 3. 1번과 2번을 했는데도 안된다면, 앱 시작시 퍼미션 확인이 필요하다. private static final int REQUEST_EXTERNAL_..

ThreadException: Only the original thread that created a view hierarchy can touch its views 간단 해결 방법

해당 에러는 안드로이드 메인 스레드 동작 중 UI 관련 업데이트를 할때 발생하는 에러이다. 1. 개념 -. 안드로이드에 국한되는 이슈는 아니며, Microsoft의 OS에서도 동일하다. 스레드에서 UI를 업데이트 하기 위해서는 특별한 동작이 필요하다. 여기서는 가장 간단한 방법을 사용해서 해결해보려한다. 2. 해결 방법 -. 위 스크린샷에서 보면 파란색 부분이 textview의 text를 업데이트하려한다. 이때 UI 스레드와 충돌이 발생하므로 runOnUiThread() {} 를 추가해주면 해결된다. 에러 발생 코드 에러 해결된 코 it.lines().forEach { line -> Log.d(TAG, "sendGet: $line") runOnUiThread() { findViewById(R.id.tex..

반응형