본문 바로가기

Android68

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.
DevLog:::개발중인 테스트기기에서만 Log를 확인할 수 있게 하기 코드를 짜는 개발중에는 좀 더 상세한 파악을 위해서 작동하는 코드의 중간중간마다 아래와 같이 Log를 붙여놓아야 문제가 발생할경우 헤메는 경우를 줄일 수 있습니다. Boolean result = false; public void somethingWork_A() { Log.d("로그 somethingWork_A",String.valueOf(result)); result = true; startSomething_A() } public void startSomething_A() { result = false; Log.d("로그 startSomething_A",String.valueOf(result)); } 보통 개발중에는 코드의 여기저기에 위와 같이 로그를 붙여놓고 사용하고 개발이 끝난 후에는 부분에는 로그가.. 2021. 8. 31.
AndroidStudio 4294967201 오류 ::: AMD CPU를 사용하는 시스템에서 AVD 사용을 위해 android emulator 설치할 때 1. 문제 AMD CPU를 사용하는 시스템도 안드로이드 스튜디오의 AVD를 사용하여 앱일 테스트 할 수 있습니다. 몇년 전에 어떻게 사용할 수 있는지 아래와 같은 글을 올린적이 있습니다. featherwing.tistory.com/16 라이젠 PC 에서 Android Studio AVD 사용하기 인텔 기반 시스템을 사용하다가 라이젠 기반의 개발 머신으로 변경후에 당황했던 것이 빌드후 테스트를 할 때 AVD를 사용하려 하니 Emulator : emulator : ERROR : x86 emulation currently requires hardware acc.. featherwing.tistory.com 저도 라이젠 기반의 워크스테이션을 가지고 있고, 이를 이용하여 개발하고 있는데요. 며칠전에 AVD를 사용.. 2021. 4. 1.
A failure occurred while executing com.android.build.gradle.--- 빌드 or APK 생성시 해당 오류가 발생할 때 1. 문제 안드로이드 앱을 Build 하거나 APK를 생성할 때 아래의 오류등이 발생하며 빌드가 되지 않는 경우가 있습니다. A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 발생하는 상황을 비교해 보면 테스트 디바이스나 AVD에서 테스트할때는 발생하지 않다가, Build나 APK 파일을 생성할때 발생하는것을 확인했습니다. com.android.build.gradle 이후는 여러가지로 변경되어 나타납니다. 2. 원인 발생원인은 프로젝트에서 빌드시 캐싱된 파일등이 꼬여서 발생합니다. 3. 해결방법 따라서 이때의 해결방안은 간단합니다. 안드로이드 프로.. 2020. 12. 9.
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.