본문 바로가기

Android + Kotlin

[Android Kotlin] Webview 디렉토리 충돌 관련 수정 방법 (https://crbug.com/558377)

반응형

얼마전에 크래시틱스 아래와 같은 로그가 올라왔습니다.

 

 

Using WebView from more than one process at once with the same data directory is not supported. https://crbug.com/558377 : Current process 

 

로그 내용을 보자면...

"Webview에서 다른 프로세스가 동일한 데이터 디렉토리에 접근하는 것을 지원하지 않는다."

뭐.. 이런 내용인 것 같습니다.

 

그 뒤로, https://crbug.com/558377 URL이 보여 웹브라우저에서 링크를 열어보았더니,

크롬 버그 사이트로 연결이 되어, 해당 이슈 관련한 보고나 댓글 등을 볼수가 있었습니다.

 

나외에도 다른 사람들도 이 버그로 고통받고 있구나라는 생각이 들었습니다. (위안이 되었어요.ㅎㅎ)

 

각설하고, 수정 방법에 대해서는 1가지 방법뿐인 것 같더라구요.

(구글링을 아무리해봐도 모두 똑같은 방법으로 가이드가 있었습니다.

 

다만, 자바 코드로 가이드가 되어 있어서, 저는 Kotlin 으로 코드를 만들어 봤습니다.

 

fun WebView.setPath(context: Context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        val processName = Application.getProcessName()
        if(processName != context.packageName) {
            WebView.setDataDirectorySuffix(processName)
        }
    }
}

 

WebView에서 손쉽게 사용 가능하도록, Extension으로 만들었습니다.

 

사용은 onCreate()에서 아래와 같이 간단하게 호출을 하시면 됩니다.

web_view.setPath(requireContext())

 

구글링을 하면서 알게된 것인데, 위의 수정 방법으로 해결이 안되다는 사람들도 있는 것으로 봐서는...

더이상 수정이 안되다면 WebView 버그라고 생각하는 편이 정신 건강에 좋을 것 같습니다.

 

반응형