androidx.appcompatのバージョンを1.1.0にしてemulatorでWebView内を長押しするとクラッシュするので調べてみた話

## appcompatのバージョンを1.1.0に上げた
appcompatのバージョンを上げて動作確認を行なっていた際にWebViewでコピーした内容を貼り付けようと長押ししたところ
クラッシュしてしまい原因を調査したため調査結果を記載

## 動作確認を行なった環境とクラッシュ状況

 * Android5.1のemulator
  * 起動した瞬間にクラッシュ
 * Android6.0のemulator
  * WebView内で長押しをするとクラッシュ
 * Android7.0以降のemulator
  * WebView内を長押ししてもクラッシュしない
 * Android5.1の実機
  * WebView内を長押ししてもクラッシュしない

## クラッシュログ

```
W/System.err: at android.content.res.Resources.getValue(Resources.java:1351)
        at android.content.res.Resources.loadXmlResourceParser(Resources.java:2774)
        at android.content.res.Resources.getLayout(Resources.java:1165)
        at android.view.MenuInflater.inflate(MenuInflater.java:108)
        at org.chromium.content.browser.SelectActionModeCallback.createActionMenu(SelectActionModeCallback.java:153)
        at org.chromium.content.browser.SelectActionModeCallback.onCreateActionMode(SelectActionModeCallback.java:124)
        at com.android.webview.chromium.FloatingSelectActionModeCallback.onCreateActionMode(FloatingSelectActionModeCallback.java:32)
        at com.android.internal.policy.PhoneWindow$DecorView$ActionModeCallback2Wrapper.onCreateActionMode(PhoneWindow.java:3531)
        at com.android.internal.policy.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2772)
        at com.android.internal.policy.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2729)
        at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:812)
        at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:812)
        at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:812)
        at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:812)
        at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:812)
        at android.view.View.startActionMode(View.java:5335)
        at com.android.webview.chromium.WebViewContentsClientAdapter.startFloatingActionMode(WebViewContentsClientAdapter.java:432)
        at com.android.webview.chromium.WebViewContentsClientAdapter.startActionMode(WebViewContentsClientAdapter.java:414)
        at org.chromium.android_webview.AwContentViewClient.startActionMode(AwContentViewClient.java:73)
        at org.chromium.content.browser.ContentViewCore.showSelectActionMode(ContentViewCore.java:2131)
        at org.chromium.content.browser.ContentViewCore.onSelectionEvent(ContentViewCore.java:2203)
        at org.chromium.android_webview.AwContents.nativeOnDraw(Native Method)
        at org.chromium.android_webview.AwContents.access$4500(AwContents.java:92)
        at org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDraw(AwContents.java:2731)
        at org.chromium.android_webview.AwContents.onDraw(AwContents.java:1191)
        at com.android.webview.chromium.WebViewChromium.onDraw(WebViewChromium.java:1713)
        at android.webkit.WebView.onDraw(WebView.java:2486)
        at android.view.View.draw(View.java:16178)
```

##  調べてみた

Google Issue Trackerに同様の内容が投稿されていた

androidx.appcompat:appcompat 1.1.0 crashes webview when long pressed
https://issuetracker.google.com/issues/141351441

## 対応方法

appcompatのバージョンを「1.0.2」とする
または、現在bataが公開されている「1.2.0-beta01」を利用することで解消できる様子

※「1.2.0-beta01」のリリースノートに「WebView を長押しした際に、androidx.appcompat:appcompat:1.1.0 によって WebView がクラッシュする問題を修正しました」と記載されている
https://developer.android.com/jetpack/androidx/releases/appcompat?hl=ja#version_120_2


## 2020/09/24追記

2020/08/05にappcompatのバージョン「1.2.0」の正式版がリリースされているようですのでそちらを利用することで問題が解消されるようです。