Fatal Exception: java.util.UnknownFormatConversionException Conversion: מ

时间:2016-10-20 13:21:52

标签: java android character-encoding string-formatting right-to-left

This code gives error on String.format(...):

inviterNameTitleView.setText(
                String.format(
                        context.getString(R.string.sharing_invite_title),
                        inviter.getNameForTitle()
                )
        );

R.string.sharing_invite_title is <string name="sharing_invite_title">%s invites you to smth.</string>

What could be the reason of this error? The symbol that results in error is a right-to-left alphabet letter. Googling doesn't give any answers.

2 个答案:

答案 0 :(得分:0)

将%替换为\ u0025

%是xml中的特殊字符。所以你不应该直接放置它。

答案 1 :(得分:0)

事实证明,应用程序只在使用iw代码(不在he)上的希伯来语语言环境时崩溃,这在Android 5.0上有旧代码很奇怪。字符串文件中的相应字符串包含s%而不是%s。这给了UnknownFormatConversionException

这是因为Android Studio中缺少RTL支持。请在此问题中查看更详细的答案:Android strings.xml resource - arabic language and dynamic formatted strings