call需要api level 9(当前min为7)java.text.normalizer#normalize

时间:2013-07-31 21:43:08

标签: java android

我一个月前完成了这个游戏,直到今天一切正常。我在网上得到错误:

odgovorNormalized = Normalizer.normalize(konResenje, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");

如果我去清单文件并将API级别更改为任何内容,甚至更改为6,我不会再出现错误。直到我在代码中更改内容。

我记得我今天将项目的编码改为拉丁语。我不知道这与此有什么关系。

直到今天,一切正常。

1 个答案:

答案 0 :(得分:6)

静态代码分析工具会捕获错误。是的,它会编译,是的,它会运行。是的,它会在运行时在任何具有API<的设备上崩溃。 9。

正确的做法是打开API:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
        /* Use Normalizer normally */
    } else {
        /* Fall back on some default behavior */
    }

你可以抑制这样的错误,但要始终确保你先修复它们:

    @SuppressLint("NewApi")
    public void methodThatUsesNewAPI() {}