We're seeing crashes in our email app (called Aqua Mail), the affected devices are all running 8.0 (Pixel XL, Nexus 6p). There is a good number of them.
The stack trace is below. I believe this is a new regression (bug) in 8.0.
One user contacted me and wrote this:
> A couple of days ago, Aqua Mail started to crash when composing or
> replying to an email under the following circumstances:
>
> 1) Selecting one of the suggested next words from my keyboard, or
> 2) Using swipe to type, but never on the first word.
>
> This had not occurred prior to a couple of days ago, and it doesn't
> appear either the Google keyboard app nor Aqua Mail app had been
> updated immediately prior to this occurring.
He's right about our app's updates - our latest was a month ago (at this time).
java.lang.ArrayIndexOutOfBoundsException:
at android.text.DynamicLayout.getBlockIndex (DynamicLayout.java:646)
at android.widget.Editor.drawHardwareAccelerated (Editor.java:1695)
at android.widget.Editor.onDraw (Editor.java:1664)
at android.widget.TextView.onDraw (TextView.java:6880)
at android.view.View.draw (View.java:19119)
at android.view.View.updateDisplayListIfDirty (View.java:18069)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4198)
at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4178)
at android.view.View.updateDisplayListIfDirty (View.java:18028)
at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:643)
at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:649)
at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:757)
at android.view.ViewRootImpl.draw (ViewRootImpl.java:2980)
at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:2794)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2347)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1386)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6733)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:911)
at android.view.Choreographer.doCallbacks (Choreographer.java:723)
at android.view.Choreographer.doFrame (Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897)
at android.os.Handler.handleCallback (Handler.java:789)
at android.os.Handler.dispatchMessage (Handler.java:98)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6541)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)
讨论过程略过。
解决方法在这儿:
st...@scruff.com <st...@scruff.com> #11
You can temporarily prevent the crash by disabling hardware acceleration on the view:
editText.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
------- 点击查看bug信息 (https://issuetracker.google.com/issues/67102093)
我在做富文本编辑器的时候遇到的这个问题,Android 8上发生的。查了很久发现是Android 8的一个bug。
(贴到这儿方便国内可以搜索到)
我的富文本编辑器在这儿: Android Rich text Editor