web-dev-qa-db-ja.com

エラー:SPAN_EXCLUSIVE_EXCLUSIVEスパンの長さをゼロにすることはできません

Androidアプリで問題が発生しました。ボタンとイベントが関連付けられていますが、最初にクリックするとエラーが表示されます

「スパンの長さをゼロにすることはできません」。

。しかし、2回目にクリックすると、イベント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);
        }
    });
    }

2つのボタンを備えた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-0620:01:39.890:

E/SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVEスパンはできません

長さがゼロ

あなたはneを助けることができますか?;)

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

私は少し遅れていることを知っています。誰かがまだイベントonclickを実行するために2回クリックするの助けが必要な場合は、これを削除しました:

Android:focusableInTouchMode="true"

OnClickイベントは、最初のクリックで機能するようになりました。

0
Kim Montano