java - 在 strings.xml 中使用长值时,Lint 给出 "Wrong format type"

标签 java android lint

我的项目在 strings.xml 中使用类似于以下的字符串声明:

<string name="file_size">File Size (%1$dMB)</string>

在我的代码中,我正在使用

getResources().getString(R.string.file_size, getFileSize());

其中 getFileSize() 返回一个 long。 Lint 给我这个错误:

“file_size 中格式化参数 '#1' 的参数类型错误:转换为 'd',接收到长(方法调用中的参数 #2)”

这是怎么回事? Android 文档说:

enter image description here

最佳答案

看起来像是 lint 规则中的错误。查看 StringFormatDetector 的来源:

// Numeric: integer and floats in various formats
case 'x':
case 'X':
case 'd':
case 'o':
case 'e':
case 'E':
case 'f':
case 'g':
case 'G':
case 'a':
case 'A':
    valid = type == Integer.TYPE
            || type == Float.TYPE;
    break;

关于java - 在 strings.xml 中使用长值时,Lint 给出 "Wrong format type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23960019/

相关文章:

java - RxJava 仅在成功时才执行链中的多个可观察量

带有 Pattern.CASE_INSENSITIVE 的 Java RegEx 性能

java - 膨胀 TableLayout 时出错

android - Android 上的 getaddrinfo 返回错误 EAI_BADFLAGS

android - Realm - results.remove() 在 Realm 中被弃用

python - 修复 yaml 文件中的 linting 错误

java - 如何使用 Java 运行带有通配符的 unix/shell 命令?

Android:恢复倒数计时器

android - 有什么方法可以配置 gradle 来检查 strings.xml 中的拼写吗?

c - C代码的实时linting