Lint给出了错误的格式类型"在strings.xml中使用long值时

时间:2014-05-30 17:14:57

标签: java android lint

我的项目在strings.xml中使用类似于:

的字符串声明
<string name="file_size">File Size (%1$dMB)</string>

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

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

getFileSize()返回long。林特给了我这个错误:

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

这里发生了什么? Android文档说:

enter image description here

1 个答案:

答案 0 :(得分:2)

看起来像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;