Emoji symbol in ? string.xml app stürzt ab
Ich würde gerne integrieren emoji-symbol ? in meine android-app. Deshalb schaute ich den hex-code für die utf-8-symbol und ergänzt die folgenden meiner string.xml Datei:
<string name="thumbsup">Perfect <node>👍👍</node></string>
Sollte dieses Ergebnis in Perfect ??
. Statt aber meine app stürzt ab, wenn die call-Aktivität versucht haben, um dieses:
JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf0
Nicht besonders perfekt 😉
- Ich weiß nicht, das format der
string.xml
Datei aber dein Beispiel ist kein gültiges XML. Ihre<string>
Knoten enthält den text und andere XML-Knoten (<node>
). NurPerfect 👍👍
als Wert funktionieren könnte. - Hallo, bitte wenden Sie sich mit diesem
http://stackoverflow.com/questions/24852806/how-can-i-put-utf-16-characters-in-android-string-resource
. - sorry für die falsche link - hier ist der link
http://stackoverflow.com/questions/33288225/how-can-i-put-a-ora-any-other-emoji-insidea-an-xml-string
- Okay, danke. Ich habe direkt integriert es in meinem code und entfernt es aus der string.xml
- Ich bin immer ein ähnlicher Absturz in Android 5, aber nicht in der Android-7.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fix ist:
Fügen Sie "--utf16" zu aapt durch hinzufügen
Ihrem
build.gradle
- Datei, und stellen Sie sicher, dass Sie keinen aapt2.Sehen https://issuetracker.google.com/issues/37140916
Es scheint, dass neuere Versionen von Android nicht den Absturz verursachen (API 24 funktionierte in meinen tests), aber das bedeutet nicht helfen, wenn Sie Unterstützung von älteren Versionen. Die besten, die ich in der Lage gewesen, um herauszufinden, ist die Verwendung von Java-kodierte strings.
Gibt es eine Reihe von Nachteilen, die mit dieser Methode, die wichtigsten ein Wesen, dass es kann nicht zugegriffen werden in der layout-XML-Dateien. Aber es ist vielleicht ein gangbarer workaround für einige Situationen.