노트북과 데스크톱으로 Github로 Android Studio 개발환경을 공유하며 작업을 하던 중 노트북에선 Database Inspector가 되는데 데스크톱에선 Database Inspector가 안되는 문제에 봉착했다.
시도 했던 것
File -> Invalidate Caches -> Invalidate and Restart
캐시문제 해결: 캐시된 데이터가 오래되거나 손상된 것을 해결
인덱싱 문제: 파일들을 인덱싱 정보가 오류를 포함하거나 업데이트 되지 않는 것을 해결
Gradle 동기화 문제: Gradle설정이나 종속성에 문제가 발생하여 동기화 에러가 발생한 것을 해결
Build -> Clean Project, Build -> Rebuild Project
이
Celan Project: 이전에 컴파일된 클래스파일, 리소스, APK, AAR, 및 기타 빌드 관련 출력물을 제거
Rebuild Projecdt: 모든 소스코드와 리소스를 컴파일하고, APK를 다시생성
이 두개를 해도 해결이 안될 때 우리는 이제 무엇을 확인해야할까.
필자의 경우에는 모듈이 세개 있고 각각의 build.gradle 에서의 compile sdk, target sdk, minsdk가 달랐었다.
domain, data 모듈에서 minSdk 24, targetSDK 33, presentation 모듈에서 min 33 taget 34, 그리고 모든 모듈의 complieSdk 34로하고 emulater의 API LEVEL을 34에서 33으로 변경하였다. 그리고 SDK Manager에서 필요한 것들을 설치했다.
- 위와 같이 수정하니 됐다. 하지만 이렇게 하지말길 바란다.
왜 됐을까, 왜 된지 모른다면 다음에 더 복합문제에 직면하게 될 것이다. 확실히 알아보자.
SDK가 무엇인지 알아보고 SDK와 Database Inspector, emulator의 관계 알아보자.
그러므로 SDK Manager에서 해당 버전을 체크하고 설치하고 apply해주어야 한다.
https://developer.android.com/studio/inspect/database?hl=ko
문제는 SDK MANAGER에 설치되지 않은 API LEVEL 33, 34를 33, 34레벨인 emulator에서 사용했던 것이 문제였던 것이다.
정리하자면 SDK MANAGER에서 emulator에서 사용될 수준의 API를 설치하지 않고 DATABASE INSPECTOR를 들여다 봤기 때문에 볼 수 없었던 것이다.
왜인진 모르겠지만 34수준에선 Security 문제가 추가적 발생한다. 알아봐야겠지만. 안정적으로 33수준으로 진행하길 바란다.
그렇다면 세가지 모듈에 minSDK와 TargetSDK는 쓸데 없이 다른 것이다. 특별한 이유가 없다면 통일시켜야겠다.