Android/에러
[Android] NameNotFoundException 해결 방법
Comi-ing
2024. 7. 9. 20:30
개발을 진행하다가 chrome과 webview의 버전을 가져오는 코드를 작성했는데, 다음과 같은 에러가 발생했다.
android.content.pm.PackageManager$NameNotFoundException: com.android.chrome
android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
에러 원인
해당 에러는 com.android.chrome과 com.google.android.webview 패키지를 찾을 수 없다는 뜻이다.
발생 가능한 원인으로는 1) 앱이 설치되어 있지 않음 2) 사용 권한이 부족함 이 있는데, 나의 경우 chrome과 webview는 설치가 되어 있었기 때문에 권한 관련해서 수정을 해보기로 했다.
에러 해결 방법
Android 11(API 30) 부터는 앱이 모든 패키지를 쿼리할 수 있는 권한을 얻기 위해서 ‘QUERY_ALL_PACKAGES’ 권한을 명시적으로 요청해야 한다.
따라서, Android 11 이전 버전이라면 같은 코드여도 정상 동작하지만, 모든 기기를 대응하기 위해서는 해당 코드를 추가해야 한다.
AndroidManifest.xml 파일에 다음 권한을 추가하면 끝이다.
<uses-pemission android:name="android.permission.QUERY_ALL_PACKAGES" />
이 코드로 패키지 정보에 엑세스할 수 있는 권한을 줌으로써 해결이 가능하다.