Странный сбой EditText на LG Optimus с Swype (работает на эмуляторе и дроидах) - PullRequest
4 голосов
/ 27 мая 2011

У меня есть приложение, которое работает в эмуляторе и на телефонах Droid. При тестировании на LG Optimus (на котором, кстати, установлен Swype), он падает со следующей трассировкой стека (ПРИМЕЧАНИЕ: он находится в конструкторе EditText).

Что странно, так это то, что предполагаемая оскорбительная строка в TextView (981) является сигнатурой метода для getDefualtView(), и в исходном коде 2.2 нет ссылок на GestureDetector в EditText или TextView.

Я предполагаю (или рискну предположить, что это наиболее вероятно из-за Swype) и не уверен в:

  1. если это swype, то как мне напишите мой код, чтобы он был swype дружеский
  2. если это не swype, тогда что это может быть? Что сбивает с толку то, что это в конструктор, использующий стили по умолчанию, и ноль для атрибутов.

любая помощь приветствуется.

С наилучшими пожеланиями, S-

- фрагмент трассировки стека -

05-26 12:28:23.440: ERROR/AndroidRuntime(11912): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.os.Handler.<init>(Handler.java:121)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.view.GestureDetector$GestureHandler.<init>(GestureDetector.java:250)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.view.GestureDetector.<init>(GestureDetector.java:370)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.view.GestureDetector.<init>(GestureDetector.java:347)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.view.GestureDetector.<init>(GestureDetector.java:331)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.widget.TextView.<init>(TextView.java:981)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.widget.EditText.<init>(EditText.java:55)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.widget.EditText.<init>(EditText.java:51)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at android.widget.EditText.<init>(EditText.java:47)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.android.gui.EditTextImpl.<init>(EditTextImpl.java:28)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.android.gui.TextFieldImpl.makeTextView(TextFieldImpl.java:23)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.android.gui.ToolkitImpl.createTextField(ToolkitImpl.java:429)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.android.gui.ToolkitImpl.createWidgets(ToolkitImpl.java:492)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.android.gui.ToolkitImpl.initializeContainer(ToolkitImpl.java:555)
05-26 12:28:23.440: ERROR/AndroidRuntime(11912):     at com.mobiapps.common.gui.WidgetContainer.initializeImpl(WidgetContainer.java:88)

- трассировка конечного стека -

Blockquote

1 Ответ

1 голос
/ 27 мая 2011

Я искал источники, и кажется, что вызов Looper.prepare() в потоке пользовательского интерфейса исправит это исключение.Но это очень странно.Вы используете несколько потоков?

...