我正在尝试显示应用程序使用的以MB为单位的缓存大小文件。但是我的应用程序崩溃了。错误:由以下原因引起:java.lang.NullPointerException
private void initializeCache() {
long size = 0;
size += getDirSize(this.getCacheDir());
size += getDirSize(this.getExternalCacheDir());
this.text_view_cache_value.setText(getResources().getString(R.string.label_cache) + readableFileSize(size));
}
public long getDirSize(File dir){
long size = 0;
for (File file : dir.listFiles()) {
if (file != null && file.isDirectory()) {
size += getDirSize(file);
} else if (file != null && file.isFile()) {
size += file.length();
}
}
return size;
}
答案 0 :(得分:1)
设置调试点或执行 System.out.println(..)检查以下内容:
this.getCacheDir()
his.getExternalCacheDir()
this.text_view_cache_value
R.string.label_cache
其中一个具有空值。