繁体   English   中英

调用需要api级别9(当前最小值为7)java.text.normalizer#normalize

[英]call requires api level 9 (current min is 7) java.text.normalizer#normalize

我是一个月前完成游戏的,直到今天一切都还不错。 我在网上遇到错误:

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

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

我刚刚记得我今天将项目编码更改为Latin。 我不知道这是否与此有关。

到今天为止一切正常。

该错误由静态代码分析工具接收。 是的,它将编译,是的,它将运行。 是的,它将在运行时在任何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() {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM