Android – SPAN_EXCLUSIVE_EXCLUSIVE охватывает не может иметь нулевую длину

У меня есть следующий макет (практически пустой):

    

Класс Activity содержит следующее:

 public class TestActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); } } 

Когда я запускаю это на своем мобильном устройстве, я получаю следующую ошибку:

 SpannableStringBuilder SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 

Я пробовал это с TextView и без него, и ошибка все еще остается, я должен делать что-то принципиально неправильное для такого базового макета, чтобы вызвать это.

Кто-нибудь есть идеи о том, как я могу загрузить это без ошибки?

Я запустил те же записи ошибок в LogCat. В моем случае это вызвано третьей стороной клавиатуры, которую я использую. Когда я меняю его на клавиатуру Android, запись об ошибке больше не отображается.

Поскольку ошибка, которую вы получаете, не связана с EditText , то это не связано с вашей клавиатурой.

Ошибки, которые вы получаете, не являются результатом вашего кода; вы, вероятно, тестируете устройство Samsung, имеющее TouchWiz от Samsung.

У меня были те же ошибки, затем я тестировал Nexus S (также Samsung, но чистую ОС Android без TouchWiz), и я не получил эту ошибку.

Таким образом, в вашем случае просто игнорируйте эти ошибки при тестировании на устройстве! 🙂

Глядя на ваш код, я не уверен, почему вы получаете эту ошибку, но у меня была такая же ошибка, но с полями EditText.

Изменение android:inputType="text" (или любой другой текст) для android:inputType="textNoSuggestions" (или android:inputType="textEmailAddress|textNoSuggestions" , например) исправил его для меня.

Вы также можете установить это в коде с чем-то вроде

 mInputField.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

Похоже, что Android предполагает, что поля EditText будут иметь предложения. Когда они этого не делают, это ошибки. На 100% не уверен в этом объяснении, но вышеупомянутые изменения исправили это для меня.

http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE

Надеюсь это поможет!

На вашем телефоне Android выберите:
settings -> application manager -> all -> samsung keyboard, а затем нажмите «clear cache»,
(удалите все данные, собранные этим приложением).

Попробуйте использовать клавиатуру Android по умолчанию, она исчезнет

Уточните, что вы передали значение в свой MainAcitivity для следующих методов onCreateOptionsMenu и onCreate

В некоторых случаях разработчик удаляет оператор «return super.onCreateOptionsMenu (menu)» и изменяется на «return true».

У меня было такое же предупреждение, и я обнаружил, что удаление неиспользуемого @id избавилось от предупреждения. Для меня это было очевидно, так как @id ассоциировался с растущим списком textViews, связанным с базой данных, поэтому для каждой записи было предупреждение.

Масуд Мошриф прав, эта ошибка возникает из-за того, что меню опций меню плохо подготовлено из-за отсутствия «return super.onCreateOptionsMenu (меню)» в методе onCreate ().

Чтобы попытаться отладить эту ошибку, сначала перейдите на свой терминал / консоль android и выполните следующую команду:

 ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER) 

то если выход выходит как ваше приложение … это ваше приложение вызывает ошибку. Попробуйте искать пустые Strings которые вы передаете в layout .

У меня была такая же проблема, и это была моя ошибка, когда я переносил пустую String в свой макет. После изменения "" на " " эта ошибка исчезла.

Если вы не получите свое приложение из вывода консоли, то это что-то другое, вызывающее его (возможно, как говорили другие, клавиатура Android)

Это сработало для меня … на каждом устройстве

   

mSearchText.setOnEditorActionListener (новый TextView.OnEditorActionListener () {

  @Override public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { if(actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || keyEvent.getAction() == KeyEvent.ACTION_DOWN || keyEvent.getAction() == KeyEvent.KEYCODE_ENTER){ //execute our method for searching } return false; } }); 

Я столкнулся с той же проблемой. Я почти потратил впустую почти пару недель, чтобы решить эту проблему. Наконец, я сомневался в себе и попытался создать другой проект, скопировав и вставив некоторые файлы для запуска, такие как SplashScreen & LoginScreen.

Но с тем же кодом я все еще получал SPAN_EXCLUSIVE_EXCLUSIVE .

Затем я удалил код обработчика с экрана всплеска и снова попытался и Wow его работу. Я не получаю сообщение SPAN_EXCLUSIVE_EXCLUSIVE в logcat .

Интересно, почему это так? пока время не получило никакого другого решения, но, удалив обработчик с экрана всплеска, он работает.

Попробуйте и обновите здесь, если это разрешено или нет.

Проверьте, есть ли у вас какой-либо элемент, такой как кнопка или текстовый вид, дублированный (скопированный дважды) на экране, где это происходит. Я сделал это незаметно и столкнулся с тем же вопросом.

Я столкнулся с этой проблемой, когда я скопировал текст из Интернета. Мое решение состоит в том, чтобы обрезать текст / удалить форматирование перед дальнейшей обработкой.

У меня была та же проблема, но с listView …. я решил ее, потому что я использовал неправильный R.id.listView, что в списке View необходимо иметь значение, в моем случае это были строки, которые я сохранил в listView2 … поэтому правильным кодом был R.id.listView2

У меня была такая же проблема, и я исправил ее, следуя коду!

  text = (EditText)findViewById(R.id.TextVoiceeditText); text.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

эта ошибка также возникает из-за изменения URL-адреса API. попробуйте нажать URL-адрес, который вы используете в почтальоне и c, если он работает правильно. перепроверяя API, я решил свою проблему

попробуйте избежать использования вида в xml-дизайне. У меня тоже был такой же проб, но когда я удалил представление. он работал отлично.

Пример:

    1    

также проверьте и попробуйте изменить методом проб и ошибок android: inputType = «number» to android: inputType = «текст» или лучше не использовать его, если это не требуется. Иногда клавиатура застревает и получает ошибку на некоторых устройствах.

  • HashMap: один ключ, несколько значений
  • Ошибка сборки тестов для Android: несколько файлов dex определяют Landroid / support / test / BuildConfig
  • spannable на android для textView
  • SSLHandshakeException Цепочный якорь для пути сертификации не найден Android HTTPS
  • Библиотека FFT в android Sdk
  • Почему константы массива могут использоваться только в инициализаторах?
  • Проверить, существует ли файл
  • Как сортировать в алфавитном порядке, игнорируя регистр?
  • Добавление пользовательских заголовков в запросы ресурсов WebView - андроид
  • путь к файлу Windows в формате java
  • Странное поведение java с приведениями к примитивным типам
  • Давайте будем гением компьютера.