我有以下布局(实际上是空的):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/set_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:contentDescription="content desc"
    android:orientation="vertical" >

    <TextView android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Hello, I am a TextView" />
</LinearLayout>

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和错误仍然存在,我一定是做了根本性的错误为这样一个基本的布局,导致这一点。

有人有什么想法吗,我怎么才能让这个加载没有错误?


当前回答

我也遇到过同样的问题。我几乎浪费了几周的时间来解决这个问题。 最后,我对自己产生了怀疑,并试图通过复制和粘贴一些启动文件,如SplashScreen和LoginScreen,来创建另一个项目。

但同样的代码,我仍然得到SPAN_EXCLUSIVE_EXCLUSIVE。

然后我已经从启动画面中删除了处理程序代码,并再次尝试,哇,它的工作。 我没有得到SPAN_EXCLUSIVE_EXCLUSIVE问题在logcat。

我在想,为什么会这样?直到时间没有得到任何其他解决方案,但从启动画面删除处理程序,它是工作的。

如果问题已经解决,请尝试在这里更新。

其他回答

检查是否有任何元素,如按钮或文本视图复制(复制两次)在屏幕上遇到。我没有注意到这件事,也不得不面对同样的问题。

**DONT PUT SET TEXT IN TEXT WATCHER**etSearch.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable) {
            visibleResultList = false
            if (s.toString().length != 0) {
                getSearchSuggetion(no_of_rec, 0, s.toString())
            } else {
               // etSearch.setText("")
            }
            Log.e("text_change","============"+s.toString())
        }
        override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
        }
    })

因为您得到的错误与EditText无关,所以它与键盘无关。

你得到的错误不是你的代码的结果;你可能是在安装了三星TouchWiz的三星设备上进行测试。

我也有同样的错误,然后我在Nexus S上测试(也是三星的,但纯Android操作系统,没有TouchWiz),我没有得到这个错误。

因此,在您的情况下,在设备上测试时忽略这些错误!:)

Masood Moshref是对的,这个错误发生是因为菜单的选项菜单没有做好准备,在onCreate()方法中缺少“返回super.onCreateOptionsMenu(菜单)”。

明确您已经在mainactitivity中为以下方法onCreateOptionsMenu和onCreate传递了一个值

在某些情况下,开发人员删除“return super.onCreateOptionsMenu(menu)”语句并将其更改为“return true”。