Ich habe folgendes Layout (praktisch leer):
<?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>
Die Aktivitätsklasse enthält Folgendes:
public class TestActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
}
Wenn ich dies auf meinem mobilen Gerät ausführe, wird folgende Fehlermeldung angezeigt:
SpannableStringBuilder
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
Ich habe dies mit und ohne TextView versucht und der Fehler bleibt weiterhin bestehen. Ich muss etwas grundlegend Falsches tun, damit ein solch grundlegendes Layout dies verursacht.
Hat jemand eine Idee, wie ich dies ohne den Fehler laden kann?
android:contentDescription
ausLinearLayout
, wie die Behälter nicht fokussierbar ist und daher wird die Beschreibung nicht AFAIK verwendet werden.Antworten:
Ich habe die gleichen Fehlereinträge in LogCat festgestellt. In meinem Fall liegt dies an der Tastatur eines Drittanbieters, die ich verwende. Wenn ich es wieder auf Android-Tastatur ändere, wird der Fehlereintrag nicht mehr angezeigt.
quelle
Da der Fehler, den Sie erhalten, nicht mit einem zusammenhängt
EditText
, hängt er nicht mit Ihrer Tastatur zusammen.Die Fehler, die Sie erhalten, sind nicht auf Ihren Code zurückzuführen. Sie testen wahrscheinlich auf einem Samsung-Gerät mit Samsung TouchWiz.
Ich hatte die gleichen Fehler, dann habe ich auf einem Nexus S (ebenfalls von Samsung, aber reines Android-Betriebssystem ohne TouchWiz) getestet und diesen Fehler nicht erhalten.
Ignorieren Sie in Ihrem Fall diese Fehler einfach, während Sie auf einem Gerät testen! :) :)
quelle
Wenn ich mir Ihren Code ansehe, bin ich mir nicht sicher, warum Sie diesen Fehler erhalten, aber ich hatte denselben Fehler, jedoch mit EditText-Feldern.
Das Ändern
android:inputType="text"
(oder einer der anderen Textvarianten von inputType) inandroid:inputType="textNoSuggestions"
(oderandroid:inputType="textEmailAddress|textNoSuggestions"
zum Beispiel) hat es für mich behoben.Sie können dies auch in Code mit so etwas wie einstellen
Anscheinend geht Android standardmäßig davon aus, dass EditText-Felder Vorschläge enthalten. Wenn sie es nicht tun, ist es ein Fehler. Nicht 100% zuversichtlich in diese Erklärung, aber die oben genannten Änderungen haben es für mich behoben.
http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE
Hoffe das hilft!
quelle
Gehen Sie auf Ihrem Android-Handy zu:
Einstellungen -> Anwendungsmanager -> Alle -> Samsung-Tastatur und klicken Sie dann auf "Cache
löschen " (löschen Sie alle von dieser Anwendung gesammelten Daten).
quelle
Versuchen Sie es mit der Standard-Android-Tastatur. Sie verschwindet
quelle
Stellen Sie sicher, dass Sie in Ihrer MainAcitivity einen Wert für die folgenden Methoden onCreateOptionsMenu und onCreate übergeben haben
In einigen Fällen löscht der Entwickler die Anweisung "return super.onCreateOptionsMenu (menu)" und ändert sie in "return true".
quelle
Im Java-Code:
quelle
Ich hatte die gleiche Warnung und stellte fest, dass das Entfernen einer nicht verwendeten @ -ID die Warnung beseitigte. Für mich war es offensichtlich, dass die @id mit einer wachsenden Liste von Textansichten verknüpft war, die mit einer Datenbank verknüpft waren, sodass für jeden Eintrag eine Warnung angezeigt wurde.
quelle
Masood Moshref ist richtig, dieser Fehler tritt auf, weil das Optionsmenü des Menüs nicht gut vorbereitet ist, da in der onCreate () -Methode "return super.onCreateOptionsMenu (menu)" fehlt.
quelle
Um zu versuchen, diesen Fehler zu debuggen, gehen Sie zuerst zu Ihrem Android-Terminal / Ihrer Android-Konsole und führen Sie den folgenden Befehl aus:
Wenn die Ausgabe dann als Ihre App ausgegeben wird, ist es Ihre App, die den Fehler verursacht. Versuchen Sie, nach leeren zu suchen
Strings
, die Sie in die übergebenlayout
.Ich hatte genau das gleiche Problem und es war meine Schuld, als ich ein Leerzeichen
String
in mein Layout übergab . Nach dem Ändern des""
zu" "
diesem Fehler ging.Wenn Sie Ihre App nicht über die Konsolenausgabe erhalten, ist dies eine andere Ursache (wahrscheinlich, wie andere sagten, die Android-Tastatur).
quelle
Ich habe das gleiche Problem konfrontiert. Ich habe fast ein paar Wochen verschwendet, um dieses Problem zu lösen. Schließlich hatte ich Zweifel an mir selbst und versuchte, ein anderes Projekt zu erstellen, indem ich einige Startdateien wie SplashScreen & LoginScreen kopierte und einfügte.
Aber mit dem gleichen Code bekam ich immer noch SPAN_EXCLUSIVE_EXCLUSIVE .
Dann habe ich den Handler-Code vom Begrüßungsbildschirm entfernt und es erneut versucht und Wow, es funktioniert. Ich erhalte kein SPAN_EXCLUSIVE_EXCLUSIVE- Problem in logcat .
Ich frage mich, warum es so ist? Bis die Zeit keine andere Lösung bekam, aber durch Entfernen des Handlers vom Begrüßungsbildschirm funktioniert es.
Versuchen Sie hier zu aktualisieren, ob es behoben ist oder nicht.
quelle
Überprüfen Sie, ob auf dem Bildschirm, auf den dies stößt, ein Element wie eine Schaltfläche oder eine Textansicht dupliziert (zweimal kopiert) wurde. Ich tat dies unbemerkt und musste mich dem gleichen Problem stellen.
quelle
Ich bin auch auf dieses Problem gestoßen, als ich Text aus dem Internet kopiert habe. Meine Lösung besteht darin, den Text zu kürzen / Formatierungen zu entfernen, bevor Sie eine weitere Verarbeitung durchführen.
quelle
Ich hatte das gleiche Problem, aber mit einer listView ... ich habe es gelöst, weil ich eine falsche R.id.listView verwendet habe. Diese Listenansicht musste einen Wert haben. In meinem Fall waren es Zeichenfolgen, die ich in listView2 gespeichert habe. Der richtige Code war also R.id.listView2
quelle
Ich hatte das gleiche Problem, dann habe ich es durch folgenden Code behoben!
quelle
Dieser Fehler tritt auch aufgrund einer geänderten API-URL auf. Versuchen Sie, die URL zu treffen, die Sie in postman und c verwenden, wenn sie ordnungsgemäß funktioniert. Das erneute Überprüfen der APIs löste mein Problem
quelle
Vermeiden Sie die Verwendung der Ansicht im XML-Design. Auch ich hatte das gleiche Problem, aber als ich die Ansicht entfernte. Es hat perfekt funktioniert.
wie Beispiel:
Überprüfen Sie auch und versuchen Sie, durch Versuch und Irrtum Android: inputType = "number" in android: inputType = "text" zu ändern, oder verwenden Sie es besser nicht, wenn es nicht benötigt wird. Manchmal bleibt die Tastatur hängen und es treten Fehler bei einigen Geräten auf.
quelle
In meinem Fall haben die EditText-Felder mit inputType als text / textCapCharacters diesen Fehler ausgelöst . Ich habe dies in meinem Logcat bemerkt, wenn ich die Rücktaste verwendet habe, um den in einem dieser Felder eingegebenen Text vollständig zu entfernen.
Die Lösung, die für mich funktioniert hat, bestand darin, den inputType dieser Felder in textNoSuggestions zu ändern, da dies der am besten geeignete Typ war und mir keine unerwünschten Fehler mehr gab.
quelle