错误:SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零
Posted
技术标签:
【中文标题】错误:SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零【英文标题】:Error: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 【发布时间】:2013-03-28 04:21:57 【问题描述】:我的 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_
android:layout_
android:background="@android:color/black">
<Button
android:id="@+id/buttonAltitude1"
style="?android:attr/buttonBarButtonStyle"
android:layout_
android:layout_
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_
android:layout_
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/Sensors(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
span 的长度不能为零 04-06 20:01:39.890:
E/SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能
长度为零
你能帮忙吗?;)
【问题讨论】:
也添加activity_main.xml代码。 请从 Logcat 发布堆栈跟踪 现在更新了 :) 谢谢 【参考方案1】:我在 LogCat 中遇到了相同的错误条目。在我的情况下,这是由我使用的第 3 方键盘引起的。当我将它改回 Android 键盘时,错误条目不再显示。
这是这个问题最可能的原因,因为还有一个 SwiftKey 的错误报告:
http://support.swiftkey.net/forums/116693-2-bug-reports/suggestions/2994580-span-exclusive-exclusive-spans-cannot-have-a-zero-
【讨论】:
@Carlos Piedade 阅读我在此处发布的答案和链接。 抱歉让您久等了。我看到了您的回答,但我不明白如何解决我的问题。您看到我在帖子中所做的更新和 LogCat 信息了吗?谢谢 @CarlosPiedade 我看到了你更新的帖子。我分享的链接可能会解决您的问题。仔细阅读我的帖子。 您能解释一下如何更改为 Android 键盘吗?我不明白如何更改.. @CarlosPiedade 您可以尝试关注this guide。但是,您的默认设备键盘可能会自动附带 SwiftKey(我的三星 Galaxy Note 10.1 就是这种情况)。【参考方案2】:要尝试调试此错误,请先转到您的 android 终端/控制台并执行以下命令:
ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)
那么如果输出作为您的应用程序出现...是您的应用程序导致错误。尝试查找您传递给layout
的空Strings
。
我遇到了同样的问题,这是我的错,因为我将一个空的 String
传递到我的布局中。将""
更改为" "
后,此错误消失了。
如果您没有从控制台输出中获取您的应用程序,那么它是由其他原因造成的(可能,正如其他人所说,android 键盘)
【讨论】:
【参考方案3】:我知道我来晚了。如果有人仍然需要第二次单击以使事件 onclick 运行的帮助,我将其删除:
android:focusableInTouchMode="true"
onClick 事件现在将在第一次点击时起作用。
【讨论】:
以上是关于错误:SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零的主要内容,如果未能解决你的问题,请参考以下文章