Ошибка: SPAN_EXCLUSIVE_EXCLUSIVE интервалы не могут иметь нулевую длину

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

"не может иметь нулевую длину".

. Но когда я нажимаю второй раз, событие onclick работает хорошо.. посмотрите мой код Java:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button selectAltitude = (Button) findViewById(R.id.buttonAltitude1);
    final Button selectAltitude2 = (Button) findViewById(R.id.buttonAltitude2); 

    selectAltitude2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view){

                String tempAlt = selectAltitude2.getText().toString();
                selectAltitude2.setText(selectAltitude.getText().toString());
                selectAltitude.setText(tempAlt);
        }
    });
    }

Код xml с двумя кнопками (появляется предупреждение об отказе):

 <?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent"
  android:background="@android:color/black"> 

<Button
        android:id="@+id/buttonAltitude1"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="39dp"
        android:layout_height="42dp"
        android:layout_marginLeft="250dp"
        android:layout_x="257dp"
        android:layout_y="419dp"
        android:background="@drawable/drawable1"
        android:focusableInTouchMode="true"
        android:gravity="center_vertical"
        android:includeFontPadding="false"
        android:linksClickable="true"
        android:minHeight="10dp"
        android:minWidth="64dp"
        android:paddingLeft="10dp"
        android:paddingRight="5dp"
        android:scrollHorizontally="true"
        android:text="@string/button_meters"
        android:textColor="@android:color/black"
        android:textSize="22sp"
        android:textStyle="bold" />

        <Button
            android:id="@+id/buttonAltitude2"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="65dp"
            android:layout_height="42dp"
            android:layout_marginLeft="250dp"
            android:layout_x="295dp"
            android:layout_y="419dp"
            android:background="@drawable/drawable2"
            android:clickable="true"
            android:focusableInTouchMode="true"
            android:gravity="center_vertical"
            android:includeFontPadding="false"
            android:linksClickable="true"
            android:minHeight="10dp"
            android:minWidth="64dp"
            android:paddingLeft="15dp"
            android:paddingRight="5dp"
            android:scrollHorizontally="true"
            android:text="@string/button_feet"
            android:textColor="@android:color/black"
            android:textSize="25sp"
            android:textStyle="bold" />

Когда я нажимаю первый раз, когда Log cat взаимодействует с:

04-06 20: 01: 39.865: I/Датчики (6946): sendDelay --- 200000000 04-06

20: 01: 39.865: D/SensorManager (6946): JNI - sendDelay 04-06

20: 01: 39.865: I/SensorManager (6946): установите нормальную задержку = значение 04-06

20: 01: 39.890: E/SpannableStringBuilder (6946): SPAN_EXCLUSIVE_EXCLUSIVE

промежутки не могут иметь нулевую длину 04-06 20: 01: 39.890:

E/SpannableStringBuilder (6946): SPAN_EXCLUSIVE_EXCLUSIVE не может

имеют нулевую длину

Вы можете помочь ne?;)

Ответ 1

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

Это наиболее вероятная причина этой проблемы, так как есть отчет об ошибке для SwiftKey:

http://support.swiftkey.net/forums/116693-2-bug-reports/suggestions/2994580-span-exclusive-exclusive-spans-cannot-have-a-zero-

Ответ 2

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

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)

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

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

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

Ответ 3

Я знаю, что немного опоздал. Если кому-то по-прежнему нужна помощь, чтобы щелкнуть второй раз для запуска события onclick, я удалил это:

android:focusableInTouchMode="true"

Событие onClick теперь будет работать при первом щелчке.