java - 错误:原因:java.lang.NullPointerException
问题描述
我正在尝试以 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;
}
解决方案
设置调试点或执行System.out.println(..)以检查以下内容:
this.getCacheDir()
his.getExternalCacheDir()
this.text_view_cache_value
R.string.label_cache
其中一个具有空值。
推荐阅读
- android - 无论如何,如果没有 Android Studio,是否可以从颤振项目开始?
- swift - 对元素具有可识别约束的快速通用序列
- python - 在检查不同集合中的元素成员资格时修复多个 elif
- amazon-web-services - 模块化 aws lambda 代码的最佳实践
- android - Android Gradle 6.1.1 问题 - settings.gradle.kts 中的 ScriptCompilationException
- python - 龙卷风/旋风中的长轮询可扩展架构
- java - python中的**和^有什么区别
- c++ - 非静态数据成员初始化器仅适用于 -std=c++11 或 -std=gnu++11
- java - url为空时如何隐藏Imageview
- javascript - 试图将一个警报分成 2 个警报