我有以下布局(几乎为空):
<?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的情况下尝试了这个并且错误仍然存在,我必须做一些根本错误的基本错误导致这种情况。
有没有人对如何在没有错误的情况下加载它有任何想法?
答案 0 :(得分:226)
我在LogCat中遇到了相同的错误条目。在我的情况下,它是由我使用的第三方键盘引起的。当我将其更改回Android键盘时,错误条目不再显示。
答案 1 :(得分:109)
因为您获得的错误 与EditText
相关,所以 与您的键盘相关。
您获得的错误不是您的代码的结果;你可能正在使用三星TouchWiz的三星设备上进行测试。
我有同样的错误,然后我在Nexus S(也是三星,但没有TouchWiz的纯Android操作系统)上测试过,我没有收到此错误。
因此,在您的情况下,只需在设备上进行测试时忽略这些错误! :)
答案 2 :(得分:40)
查看你的代码,我不确定你为什么会收到这个错误,但我有同样的错误但是有EditText字段。
将android:inputType="text"
(或任何其他inputType文字变体)更改为android:inputType="textNoSuggestions"
(或android:inputType="textEmailAddress|textNoSuggestions"
),为我修复了它。
您也可以在代码中使用类似
的内容进行设置mInputField.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
默认情况下,Android会假定EditText字段会有建议。如果他们不这样做,那就错了。对这个解释没有100%的信心,但上面提到的修改为我解决了这个问题。
http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE
希望这有帮助!
答案 3 :(得分:14)
在Android手机上,请转到:
设置 - &gt;应用程序管理器 - &gt;全部 - &gt;三星键盘然后点击“清除缓存”
(删除此应用程序收集的所有数据)。
答案 4 :(得分:11)
尝试使用默认的Android键盘,它将消失
答案 5 :(得分:4)
明确表示您已在MainAcitivity中传递以下方法的值onCreateOptionsMenu和onCreate
在某些情况下,开发人员会删除“return super.onCreateOptionsMenu(menu)”语句并更改为“return true”。
答案 6 :(得分:2)
这对我有用...在所有设备上
<EditText
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="15sp"
android:layout_centerVertical="true"
android:textColor="#000"
android:id="@+id/input_search"
android:background="@null"
android:inputType="text"
android:hint="Enter Address, City or Zip Code"
android:imeOptions="actionSearch"
/>
在Java代码中:
mSearchText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if(actionId == EditorInfo.IME_ACTION_SEARCH
|| actionId == EditorInfo.IME_ACTION_DONE
|| keyEvent.getAction() == KeyEvent.ACTION_DOWN
|| keyEvent.getAction() == KeyEvent.KEYCODE_ENTER){
//execute our method for searching
}
return false;
}
});
答案 7 :(得分:1)
要尝试调试此错误,请首先转到Android终端/控制台并执行以下命令:
ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)
然后如果输出作为您的应用程序出现......那么您的应用程序会导致错误。尝试查找您传递到Strings
的空layout
。
我遇到了同样的问题,因为我将空String
传递给我的布局,这是我的错。将""
更改为" "
后,此错误消失了。
如果你没有从控制台输出中获取你的应用程序,那么它就会引起它(可能正如其他人所说的那样,安卓键盘)
答案 8 :(得分:1)
Masood Moshref是对的,发生此错误是因为菜单的选项菜单没有通过缺少&#34;返回super.onCreateOptionsMenu(菜单)&#34;在onCreate()方法中。
答案 9 :(得分:1)
我有同样的警告,发现删除一个未使用的@id摆脱了警告。对我来说很明显,因为@id与一个不断增长的链接到数据库的textView列表相关联,所以每个条目都有一个警告。
答案 10 :(得分:0)
检查在遇到此问题的屏幕中是否有任何元素(如按钮或文本视图)重复(复制两次)。我没有注意到这一点,不得不面对同样的问题。
答案 11 :(得分:0)
我遇到了同样的问题。我几乎浪费了几周才解决了这个问题。 最后我对自己产生了疑问,并试图通过复制和粘贴一些启动文件来创建另一个项目,如SplashScreen&amp; LoginScreen。
但是使用相同的代码仍然是 SPAN_EXCLUSIVE_EXCLUSIVE 。
然后我从启动画面中删除了处理程序代码,然后再次尝试并哇其工作。 我没有在 logcat 中收到 SPAN_EXCLUSIVE_EXCLUSIVE 问题。
我想知道,为什么会这样?直到时间没有得到任何其他解决方案,但通过从启动屏幕删除处理程序,它正在工作。
如果已解决,请尝试并在此处更新。
答案 12 :(得分:0)
当我从互联网上复制一些文本时,我也遇到了这个问题。我的解决方案是在进行任何进一步处理之前修剪文本/删除格式。
答案 13 :(得分:0)
我有同样的问题,但有一个listView ....我解决了它因为我使用错误的R.id.listView列表View需要有一个值,在我的情况下它是我保存在listView2上的字符串...所以正确的代码是R.id.listView2
答案 14 :(得分:0)
我有同样的问题,然后通过以下代码修复它!
text = (EditText)findViewById(R.id.TextVoiceeditText);
text.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
答案 15 :(得分:0)
由于更改了API URL,也会发生此错误。尝试点击你在postman中使用的URL和c如果它正常工作。 重新检查API解决了我的问题
答案 16 :(得分:0)
尝试避免在xml设计中使用 view 。我也有相同的探测器,但是当我删除视图时。它工作得很好。
例如:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:inputType="number"
android:textColor="#fff" />
<view
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#f9d7db" />
还检查并尝试通过试验和错误更改 android:inputType =&#34; number&#34; 改为 android:inputType =&#34; text&#34; 或者如果不需要,最好不要使用它。有时键盘卡住并在某些设备中出错。
答案 17 :(得分:0)
在我的情况下,inputType为 text / textCapCharacters 的EditText字段用于解决此错误。每当我使用退格键完全删除在任何这些字段中键入的文本时,我都会在logcat中注意到这一点。
对我有用的解决方案是将这些字段的inputType更改为 textNoSuggestions ,因为这是最合适的类型,并且不再给我任何不必要的错误。
答案 18 :(得分:0)
就我而言,我单击手机上的最近应用程序快捷方式,然后关闭所有应用程序。此解决方案始终对我有用,因为此错误与代码无关。
答案 19 :(得分:0)