我的项目在strings.xml中使用字符串声明,类似于:
<string name="file_size">File Size (%1$dMB)</string>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我正在使用
getResources().getString(R.string.file_size, getFileSize());
Run Code Online (Sandbox Code Playgroud)
其中getFileSize()返回long.林特给我这个错误:
"在file_size中格式化参数'#1'的参数类型错误:转换为'd',接收时间长(方法调用中的参数#2)"
这里发生了什么?Android文档说:

看起来像是 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;
Run Code Online (Sandbox Code Playgroud)