LoginSignup
2
2

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-20

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」の正式版がリリースされているようですのでそちらを利用することで問題が解消されるようです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2