본문 바로가기

Android/Exceptions30

The device already has an application with the same package but a different signature. 안드로이드 스튜디오를 사용하다 보면, 기존 PC에서 작업하던 내용을 Git을 이용하여 변경내용을 Commit 하고 이어서 다른 PC 에서 작업하는 경우가 굉장히 많습니다. 그런데 앱의 작동은 결국 기기를 통해서 테스트 해봐야 하는데 기존 PC에서 그대로 코드를 짜나가며 테스트 할 때는 앱을 재설치해도 업데이트되지만 다른 PC에서 설치하려고 할때는 위와 같은 메시지가 뜨면서 기존에 설치된 앱을 지우고 재설치해야 하게 됩니다. 앱에 테스트용 데이터가 입력되어 있는 경우가 있다면 앱을 지우고 재설치하게 되면 데이터를 다시 입력해야하기 때문에 굉장히 불편하게 됩니다. 이 문제는 Debug할 때 서명하는 debug keystore가 달라서 생기는 문제인데요 해당 debug keystore는 안드로이드 스튜디오를 .. 2023. 10. 28.
java.lang.RuntimeException:::Unable to start activity ComponentInfo, NullPointerException:::Attempt to invoke interface method 1. 프로젝트 빌드는 문제없이 잘되는데 테스트를 위해 앱을 실행할 때 발생하였습니다. 보통 아래의 Exception(RuntimeException, NullPointerException)들이 랜덤으로 발생하는데, Logcat에서 띄워주는 코드 라인으로 가도 어떠한 문제도 없었습니다. java.lang.RuntimeException: Unable to start activity ComponentInfo java.lang.NullPointerException: Attempt to invoke interface method Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void androidx.appcompat.wi.. 2023. 4. 5.
MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android MethodHandle.invoke and MethodHandle.invokeExact are only supported starting with Android O (--min-api 26): Lorg/apache/logging/log4j/util/ServiceLoaderUtil;callServiceLoader(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;Ljava/lang/ClassLoader;Z)Ljava/lang/Iterable; 1. 새로운 라이브러리를 implementation 한 이후 프로젝트를 빌드할 때 발생하였습니다. 클린 후 리빌드해도 빌드되지 않고 해당 오류가 뜨면서 빌드가 진행되지 않습니다. 일반적인 Exception이 프로젝트 .. 2023. 3. 26.
WorkExecutionException ::: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException 오류메시지 Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction 1. 오래된 프로젝트를 새로운 프로젝트로 이식하던 중 발생하였습니다. 애뮬레이터나 디바이스에서 앱을 테스트 하기 위해 Run 하던 도중 발생하여 앱이 실행되지 않으며 해당 오류가 발생합니다. 2. 발생원인은 아래와 같이 빌드의 종속성과 리소스가 일치되지 않을때 발생합니다. DrawerLayout을 예로 들면 android.support.v4.widget.Drawer.. 2023. 3. 9.
안드로이드 12, android:exported ::: Execution failed for task ':app:checkDebugAarMetadata'. minCompileSdk (31) App을 빌드하는 과정에서 아래와 같은 오류로 앱이 빌드되지 않는 경우가 있습니다. Execution failed for task ':app:checkDebugAarMetadata'. 해당 failded를 좀 더 자세히 확인하면 아래와 같은 메시지를 확인할 수 있습니다. One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). .. 2021. 11. 4.
Duplicate resources ::: Fabric SDK Deprecated로 인한 Crashlytics SDK 의 업데이트 Firebase 콘솔에서 다음과 같은 알림을 확인 하였습니다. 2020년 11월 15일 전까지 Firebase Crashlytice SDK를 업데이트 하라고 하는군요. 해당 알림을 누르면 새롭게 변경된 Crashlytics 구현 방법 홈페이지로 이동됩니다. Firebase Crashlytics 시작하기 Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기 의견 보내기 Firebase Crashlytics 시작하기 iOS Android Unity 이 빠른 시작에서는 Firebase Crashlytics SDK를 사 firebase.google.com 이리 저리 살펴보니, 기존에는 project 단의 build.gradle에 implementation 시켜주는것으.. 2020. 8. 28.
open failed: EACCES (Permission denied) ::: 안드로이드 10 이상에서 외부저장소 파일 복사시 뜨는 Exception 안드로이드 10 이상부터 저장소 관리 정책에 큰 변화가 생겼습니다. Scope Storage 라고 하는 개념인데, 기존에 파일 경로나 SD카드 등에 접근할 수 있었던 기능들에 큰 제약이 발생하고, 샌드박스 형식의 앱 관련 디렉토리에만 접근 가능하게 되는 변경사항 입니다. 즉, 안드로이드 10(API 29)을 타겟으로 하는 앱의 경우 또다시!!!! SD카드 경로나 파일 읽기/쓰기 관련해서 변경해주어야 한다는 겁니다. 특히, Environment.getExternalStorageDirectory()가 deprecated 됨에 따라 최상위 경로등을 가지고 올 수 없도록 변경되어 파일 경로 등을 사용할 수 없도록 변경될 예정(?)이었습니다. 즉, 컨텐트 프로바이더를 사용하는것 처럼 일일이 유저가 상호작용 해주어.. 2020. 7. 24.
Iterator ::: java.util.ConcurrentModificationException 1. List에서 특정 조건을 가진항목을 삭제하던 중 발생하였습니다 List mList = new ArrayList(); public void deleteItem(String Title) { for(int i=0; i 2020. 6. 28.
MaterialComponents ::::: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). 1. 발생 조건 : Material Object인 Chip을 처음 사용 해 보던 중 발생하였습니다. 아래의 해당 Exception이 발생하며 Crash로 앱이 종료됩니다. Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). at com.google.android.material.internal.ThemeEnforcement.e(ThemeEnforcement.java:248) at com.google.android.material.internal.ThemeEnforcement.c(ThemeEnf.. 2020. 6. 27.
IllegalArgumentException: Bound must be positive 1. 아래와 같이 Random을 이용해서 난수를 생성 하던 중 발생하였습니다. List 사이즈 중에서 랜덤한 포지션을 뽑아내는 함수입니다. Random mRandom = new Random(System.currentTimeMillis()); int RandomNum = mRandom.nextInt(mList.size()); 2. Exception의 내용은 간단합니다. random함수의 범위는 양수여야 한다는 내용입니다. List의 사이즈가 0일때가 있어서 0이 들어갈때 해당 Exception이 발생하게 됩니다. 3. 아래와 같이 mList의 사이즈가 0이상인지 를 판단하는 조건문을 넣어줌으로서 해결하였습니다. Random mRandom = new Random(System.currentTimeMillis(.. 2020. 6. 13.