bthurlow / nativescript-maskedinput

A {N} masked input plugin for iOS and Android
Other
8 stars 8 forks source link

Error: Calling js method onTextChanged failed #17

Open dpdragnev opened 7 years ago

dpdragnev commented 7 years ago

Hello, I currently have our app in Beta in the Play store. I was checking the crashes report and noticed the following error:

com.tns.NativeScriptException: Calling js method onTextChanged failed
Error: java.lang.IndexOutOfBoundsException: setSpan (12 ... 12) ends beyond length 11
android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
android.text.Selection.setSelection(Selection.java:76)
android.widget.TextView.semSetSelection(TextView.java:11462)
android.widget.TextView.semSetSelection(TextView.java:11476)
android.widget.EditText.setSelection(EditText.java:142)
com.tns.Runtime.callJSMethodNative(Native Method)
com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:865)
com.tns.Runtime.callJSMethodImpl(Runtime.java:730)
com.tns.Runtime.callJSMethod(Runtime.java:716)
com.tns.Runtime.callJSMethod(Runtime.java:697)
com.tns.Runtime.callJSMethod(Runtime.java:687)
com.tns.gen.android.text.TextWatcher.onTextChanged(android.text.TextWatcher.java)
android.widget.TextView.sendOnTextChanged(TextView.java:9404)
android.widget.TextView.handleTextChanged(TextView.java:9481)
android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12340)
android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1208)
android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:578)
android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:230)
android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:346)
android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:68)
android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:455)
android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:357)
android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
android.widget.TextView.doKeyDown(TextView.java:7336)
android.widget.TextView.onKeyDown(TextView.java:7119)
android.view.KeyEvent.dispatch(KeyEvent.java:3322)
android.view.View.dispatchKeyEvent(View.java:10561)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:582)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:497)
com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1853)
android.app.Activity.dispatchKeyEvent(Activity.java:3150)
com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:403)
android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4942)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4904)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492)
android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458)
android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4591)
android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466)
android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4648)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492)
android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458)
android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6936)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6875)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6836)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4088)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:6688)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
File: "/data/data/com.americanwebloan.awlmobile/files/app/tns_modules/nativescript-maskedinput/maskedinput.js, line: 89, column: 38
StackTrace:
Frame: function:'android.addTextChangedListener.android.text.TextWatcher.onTextChanged', file:'/data/data/com.americanwebloan.awlmobile/files/app/tns_modules/nativescript-maskedinput/maskedinput.js', line: 89, column: 39
  at com.tns.Runtime.callJSMethodNative(Native Method:0)
  at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:865)
  at com.tns.Runtime.callJSMethodImpl(Runtime.java:730)
  at com.tns.Runtime.callJSMethod(Runtime.java:716)
  at com.tns.Runtime.callJSMethod(Runtime.java:697)
  at com.tns.Runtime.callJSMethod(Runtime.java:687)
  at com.tns.gen.android.text.TextWatcher.onTextChanged(android.text.TextWatcher.java:0)
  at android.widget.TextView.sendOnTextChanged(TextView.java:9404)
  at android.widget.TextView.handleTextChanged(TextView.java:9481)
  at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12340)
  at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1208)
  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:578)
  at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:230)
  at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
  at android.text.method.BaseKeyListener.backspaceOrForwardDelete(BaseKeyListener.java:346)
  at android.text.method.BaseKeyListener.backspace(BaseKeyListener.java:68)
  at android.text.method.BaseKeyListener.onKeyDown(BaseKeyListener.java:455)
  at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:357)
  at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
  at android.widget.TextView.doKeyDown(TextView.java:7336)
  at android.widget.TextView.onKeyDown(TextView.java:7119)
  at android.view.KeyEvent.dispatch(KeyEvent.java:3322)
  at android.view.View.dispatchKeyEvent(View.java:10561)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:582)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1697)
  at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:497)
  at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1853)
  at android.app.Activity.dispatchKeyEvent(Activity.java:3150)
  at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:403)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4942)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4904)
  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492)
  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458)
  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4591)
  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466)
  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4648)
  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492)
  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458)
  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466)
  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439)
  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6936)
  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6875)
  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6836)
  at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4088)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6688)
  at java.lang.reflect.Method.invoke(Native Method:0)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by: java.lang.IndexOutOfBoundsException: 
  at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1265)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:684)
  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
  at android.text.Selection.setSelection(Selection.java:76)
  at android.widget.TextView.semSetSelection(TextView.java:11462)
  at android.widget.TextView.semSetSelection(TextView.java:11476)
  at android.widget.EditText.setSelection(EditText.java:142)

I am using version 0.0.3

Any ideas on what might be going on?

Thanks.