it-swarm.com.ru

Ошибка: 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): установить нормальную задержку = true 04-06

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

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

E/SpannableStringBuilder (6946): диапазон SPAN_EXCLUSIVE_EXCLUSIVE не может

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

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

10
cpfp

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

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

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

21
Ajay S

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

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)

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

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

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

0
dazito

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

Android:focusableInTouchMode="true"

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

0
Kim Montano