10

Recently I got a crash in google play console.

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)

Device: Redmi K20 Pro

Android version: 10

I can't find this part of code in android sources(well, seems it's Xiaomi modification)

I found same issue in the React-Native community.

Any ideas on how to solve it?

UPD: I got this crash on completely native app, without any crossplatform framework.

Anrimian
  • 4,257
  • 4
  • 22
  • 30

3 Answers3

0

This crash comes from OS, actually, the Xiaomi makes a custom Android and the modification on version 10 makes this crash. there is a solution, pass caretHidden flag by true value and this issue will disappear:

<TextInput
  caretHidden={true}
  ...

We can write it a little better:

<TextInput
  caretHidden
  ...
AmerllicA
  • 29,059
  • 15
  • 130
  • 154
0

I landed myself into the same problem yesterday. So, It took me some time to find out that if I type a . (dot) in the email input field and then clear it, after that typing the email does not crash the app anymore. So here is yet another workaround that does not include caret hiding and still working for me on Redmi 9.

const [email, setEmail] = useState(".");

useEffect(() => {
  setTimeout(() => {
    setEmail("");
  }, 1);
}, []);
Faizan Mustafa
  • 371
  • 5
  • 19
0

I found a solution for native android developers.I believe you must be using inputType as 'textEmailAddress' in your editText, just change it to this:

android:inputType="textNoSuggestions|textEmailAddress"