在运行 android 10 的小米设备上编辑文本文本输入中与电子邮件崩溃



最近我在谷歌播放控制台中崩溃了。

java.lang.NullPointerException:  
at android.widget.Editor$SelectionModifierCursorController.access$300 (Editor.java:6696) 
at android.widget.Editor.getEmailPopupWindow (Editor.java:1469) 
at android.widget.Editor.showEmailPopupWindow (Editor.java:1477) 
at android.widget.Editor.handleEmailPopup (Editor.java:1456) 
at android.widget.Editor.updateCursorPosition (Editor.java:2099) 
at android.widget.TextView.getUpdatedHighlightPath (TextView.java:7813) 
at android.widget.TextView.onDraw (TextView.java:7998) 
at android.view.View.draw (View.java:21472) 
at android.view.View.updateDisplayListIfDirty (View.java:20349) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at androidx.recyclerview.widget.RecyclerView.drawChild (RecyclerView.java:4820) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.draw (View.java:21475) 
at android.view.View.updateDisplayListIfDirty (View.java:20349) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.draw (View.java:21475) 
at android.view.View.updateDisplayListIfDirty (View.java:20349) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw (ConstraintLayout.java:2023) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at androidx.coordinatorlayout.widget.CoordinatorLayout.drawChild (CoordinatorLayout.java:1246) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.draw (View.java:21475) 
at android.view.View.updateDisplayListIfDirty (View.java:20349) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.updateDisplayListIfDirty (View.java:20340) 
at android.view.View.draw (View.java:21204) 
at android.view.ViewGroup.drawChild (ViewGroup.java:4412) 
at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4171) 
at android.view.View.draw (View.java:21475) 
at com.android.internal.policy.DecorView.draw (DecorView.java:830) 
at android.view.View.updateDisplayListIfDirty (View.java:20349) 
at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:575) 
at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:581) 
at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:654) 
at android.view.ViewRootImpl.draw (ViewRootImpl.java:3687) 
at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:3482) 
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2819) 
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1782) 
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7785) 
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1031) 
at android.view.Choreographer.doCallbacks (Choreographer.java:854) 
at android.view.Choreographer.doFrame (Choreographer.java:789) 
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1016) 
at android.os.Handler.handleCallback (Handler.java:883) 
at android.os.Handler.dispatchMessage (Handler.java:100) 
at android.os.Looper.loop (Looper.java:224) 
at android.app.ActivityThread.main (ActivityThread.java:7520) 
at java.lang.reflect.Method.invoke (Method.java) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:539) 
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:950)

设备: 红米K20 Pro

安卓版本:10

我在安卓源中找不到这部分代码(嗯,似乎是小米修改(

我在 React-Native 社区中发现了同样的问题。

关于如何解决它的任何想法?

UPD:我在完全原生的应用程序上遇到了这个崩溃,没有任何跨平台框架。

这次崩溃来自操作系统,实际上,小米制作了自定义Android,而版本10上的修改使此崩溃。 有一个解决方案,按true值传递caretHidden标志,此问题将消失:

<TextInput
caretHidden={true}
...

我们可以把它写得更好一点:

<TextInput
caretHidden
...

我昨天陷入了同样的问题。因此,我花了一些时间才发现,如果我在电子邮件输入字段中键入.(点(然后清除它,之后键入电子邮件不会再使应用程序崩溃。因此,这是另一种解决方法,不包括插入符号隐藏,并且仍然在Redmi 9上为我工作。

const [email, setEmail] = useState(".");
useEffect(() => {
setTimeout(() => {
setEmail("");
}, 1);
}, []);

我为原生安卓开发者找到了解决方案。我相信您必须在编辑文本中使用inputType作为"textEmailAddress",只需将其更改为:

android:inputType="textNoSuggestions|textEmailAddress"

最新更新