본문 바로가기

Android (안드로이드)

[Android] OS 8 SelectPopupAdapter NotFoundException.


안녕하세요.

이번 포스팅은 Android OS 8에서 WebView의 SelectBox를 

누를 때 발생하는 오류에 대해서 작성했습니다.


개발 프로젝트가 끝내고 여유가 생겨서

운영중인 앱의 Fabric 계정을 들어갔다가 뜨악했습니다.


SelectPopupAdapter.java line 13

org.chromium.content.browser.input.SelectPopupAdapter.getView

Fatal Exception: android.content.res.Resources$NotFoundException: Resource ID #0x0

       at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:207)

       at android.content.res.Resources.loadXmlResourceParser(Resources.java:2148)

       at android.content.res.Resources.getLayout(Resources.java:1157)

       at android.view.LayoutInflater.inflate(LayoutInflater.java:421)

       at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:416)

       at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)

       at org.chromium.content.browser.input.SelectPopupAdapter.getView(SelectPopupAdapter.java:13)

이하 생략...


90일간 발생한 오류 8481건 !!

이정도면 항의가 엄청나게 들어왔을것같은데

왜 아무도 나에게 알려주지 않은거죠 ㅎㅎ


원인을 구글링에서 찾아보니

OS 8에서 WebView가 특정 xml 파일을 사용하여 Spinner를 확장하는데 

제 프로젝트는 해당 파일이 없어 발생했던것입니다.


appcompat의 버전을 23에서 26으로 변경해주었습니다.

'com.android.support:appcompat-v7:23.2.0' -> 'com.android.support:appcompat-v7:26.1.0'


appcompat 버전 변경을 위해

complieSdkVersion, buildToolVersion을 23 -> 26으로 변경

repositories 에 maven { url 'https://maven.google.com'} 를 추가했습니다.


repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url 'https://maven.google.com'}
}

android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId ''
minSdkVersion 16
targetSdkVersion 23
}

앱을 실행해서 확인해보니

WebView SelectBox를 눌러도 죽지 않네요!


읽어주셔서 감사합니다.