Я использую Xamarin Forms 'Entry
для извлечения некоторых данных, когда вызывается событие OnTextChanged
.Xamarin Forms Entry throwing Java.Lang.ArrayIndexOutOfBoundsException
Иногда он выдает неуправляемый Java.Lang.ArrayIndexOutOfBoundsException
, который вызывает сбой приложения.
Код я использовал:
private void textbox_OnTextChanged(object sender, TextChangedEventArgs e)
{
TextChanged();
}
public async void TextChanged()
{
try
{
if(textbox.Text.Length > 5) //< This sucks and I know it.
{
string text = textbox.Text;
await Task.Run(()=>doSomeMadlyDemandingRandomStuff(text));
}
}
catch(Exception ex)
{
//Bloody exception is never caught.
}
}
Я знаю, что условная при TextChanged()
является световых лет от того performatic, но на данный момент, я просто хочу, чтобы работать.
Вышеупомянутое исключение выдается, когда пользователь вводит довольно длинное предложение или когда он занимает несколько раз.
Полное исключение составляет Java.Lang.ArrayIndexOutOfBoundsException: length=20; index=20
.
Замечания
1) Я пытался запустить Environment.StackTrace
, но она замерзает, и я просто не знаю, где она брошена. Любые помощь в этом отношении будет оценена по достоинству.
2) Он использовал это исключительное исключение, когда общая длина была больше 20 символов, а метод await
ed получил свойство Text
, которое, я подозреваю, искалечило значения из текущей темы. Передача переменной (text
) решена что проблема.
3) Я знаю, что означает Java.Lang.ArrayIndexOutOfBoundsException
. Я просто не знаю , когда обращается к индексу, который выходит за пределы.
4) Xamarin Forms 'Editor
имеет ту же проблему.
5) Некоторый контекст для разъяснения того, что должно делать это текстовое поле: он должен использоваться как запись автозаполнения (возможности), где пользователь вводит несколько букв, список просматривается с результатами и постоянно обновляется как набираются остальные буквы.
try catch (Exception) { } –
Забавно, что он ловит исключение, если переменная не предоставляется, но, к сожалению, я не могу просто игнорировать эту проблему. –
проверка doSomeMadlyDemandingRandomStuff осуществление. –