From cba75cf12df4d0803e3485e93f506cb4b41c7af3 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Tue, 5 Mar 2019 14:35:16 -0800 Subject: [PATCH] EditText turn off hardware acc. for Oreo Summary: Research into this error led us to this: https://issuetracker.google.com/issues/67102093 which refers to a very similar stack trace as our error: * Both errors have a bad access in `android.text.DynamicLayout.getBlockIndex` due to a negative array index * The report mentions it only affecting Oreo devices, this aligns with our [LogView](https://our.intern.facebook.com/intern/logview/details/facebook_android_crashes/80ce327664e6696ef03f951a9268ac29/?trace_key=cc916846a500b6efb5c68ae1a2e6b5c3) where ~99% of affected device os versions are Oreo. As a workaround mentioned in discussion, this diff turns off hardware acceleration for Oreo devices in `ReactEditText` Reviewed By: mdvacca Differential Revision: D14291369 fbshipit-source-id: 797d3123bcb240abd2401ca0d7d3a5a3ef8e22e3 --- .../com/facebook/react/views/textinput/ReactEditText.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java index 8bd0081e219..1638d492501 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java @@ -109,6 +109,13 @@ public class ReactEditText extends EditText { mTextAttributes = new TextAttributes(); applyTextAttributes(); + + // Turn off hardware acceleration for Oreo (T40484798) + // see https://issuetracker.google.com/issues/67102093 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + && Build.VERSION.SDK_INT <= Build.VERSION_CODES.O_MR1) { + setLayerType(View.LAYER_TYPE_SOFTWARE, null); + } } // After the text changes inside an EditText, TextView checks if a layout() has been requested.