-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description
When I bound Text property of Entry to float value with StringFormat='{0:F2}', app crashes when I change value with the following exception: Java.Lang.IllegalArgumentException: 'end should be < than charSequence length'
.
I run my app on android 14 on Xiaomi 13.
Steps to Reproduce
- Downolad, build and run my reproduction project
or - Bound Entry.Text to float property with fractional string format, '{}{0:F2}' in my case.
- Run on a physical device (this issue doesn't occur on emulator).
- Remove all chars and enter any number.
- Get exception
Java.Lang.IllegalArgumentException: 'end should be < than charSequence length'
.
Link to public reproduction project repository
Version with bug
9.0.0-rc.2.24503.2
Is this a regression from previous behavior?
Not sure, did not test other versions
Last version that worked well
No response
Affected platforms
Android
Affected platform versions
Android 14 UKQ1.230804.001
Did you find any workaround?
Do not use string format with float value
Relevant log output
13:21:35:821 [AndroidRuntime] FATAL EXCEPTION: main
13:21:35:821 [AndroidRuntime] Process: com.companyname.mauistringformatissue, PID: 5792
13:21:35:821 [AndroidRuntime] java.lang.IllegalArgumentException: end should be < than charSequence length
13:21:35:821 [AndroidRuntime] at androidx.core.util.Preconditions.checkArgument(Preconditions.java:51)
13:21:35:821 [AndroidRuntime] at androidx.emoji2.text.EmojiCompat.process(EmojiCompat.java:1127)
13:21:35:821 [AndroidRuntime] at androidx.emoji2.viewsintegration.EmojiTextWatcher.afterTextChanged(EmojiTextWatcher.java:99)
13:21:35:821 [AndroidRuntime] at android.widget.TextView.sendAfterTextChanged(TextView.java:12420)
13:21:35:821 [AndroidRuntime] at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:15930)
13:21:35:821 [AndroidRuntime] at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1278)
13:21:35:821 [AndroidRuntime] at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:578)
13:21:35:821 [AndroidRuntime] at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:308)
13:21:35:821 [AndroidRuntime] at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:508)
13:21:35:821 [AndroidRuntime] at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:298)
13:21:35:821 [AndroidRuntime] at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:48)
13:21:35:821 [AndroidRuntime] at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:129)
13:21:35:821 [AndroidRuntime] at android.widget.TextView.doKeyDown(TextView.java:9566)
13:21:35:821 [AndroidRuntime] at android.widget.TextView.onKeyDown(TextView.java:9334)
13:21:35:821 [AndroidRuntime] at android.view.KeyEvent.dispatch(KeyEvent.java:2934)
13:21:35:821 [AndroidRuntime] at android.view.View.dispatchKeyEvent(View.java:15772)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at androidx.core.widget.NestedScrollView.dispatchKeyEvent(NestedScrollView.java:686)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1981)
13:21:35:821 [AndroidRuntime] at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:554)
13:21:35:821 [AndroidRuntime] at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1898)
13:21:35:821 [AndroidRuntime] at android.app.Activity.dispatchKeyEvent(Activity.java:4542)
13:21:35:821 [AndroidRuntime] at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.kt:103)
13:21:35:821 [AndroidRuntime] at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
13:21:35:821 [AndroidRuntime] at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.kt:117)
13:21:35:821 [AndroidRuntime] at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:604)
13:21:35:821 [AndroidRuntime] at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
13:21:35:821 [AndroidRuntime] at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3397)
13:21:35:821 [AndroidRuntime] at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:437)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:7717)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7565)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6953)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7010)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6976)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7141)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6984)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7198)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6957)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7010)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6976)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6984)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6957)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10124)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10075)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10039)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl(ViewRootImpl.java:6709)
13:21:35:822 [AndroidRuntime] at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:6566)
13:21:35:822 [AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:106)
13:21:35:822 [AndroidRuntime] at android.os.Looper.loopOnce(Looper.java:224)
13:21:35:822 [AndroidRuntime] at android.os.Looper.loop(Looper.java:318)
13:21:35:822 [AndroidRuntime] at android.app.ActivityThread.main(ActivityThread.java:8777)
13:21:35:822 [AndroidRuntime] at java.lang.reflect.Method.invoke(Native Method)
13:21:35:822 [AndroidRuntime] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
13:21:35:822 [AndroidRuntime] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
13:21:36:154 Java.Lang.IllegalArgumentException: 'end should be < than charSequence length'
Metadata
Metadata
Assignees
Labels
Type
Projects
Status