今天开开心心地玩体验一下Facebook强大的图片缓存框架,然后直接配置它的磁盘缓存路径:
DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder()
.setBaseDirectoryPath(new File(Environment.getExternalStorageDirectory()))
.build();
然后开开心心就想成功,谁知报这样的错误:
Caused by: java.lang.NullPointerException
at com.facebook.common.internal.Preconditions.checkNotNull(Preconditions.java:210)
at com.facebook.cache.disk.DiskCacheConfig.<init>(DiskCacheConfig.java:42)
at com.facebook.cache.disk.DiskCacheConfig.<init>(DiskCacheConfig.java:28)
at com.facebook.cache.disk.DiskCacheConfig$Builder.build(DiskCacheConfig.java:205)
然后百度了一番,结果没找到解决方法。不知道是目前国内太少人用,还是我搜索的姿势不对。不过,最后google了一下,才发现,当设置了主要目录路径之前,即setBaseDirectoryPath,还要设置它的主要目录名称,即
setBaseDirectoryName,然而这个名称可以随便设的,只要有就行。挺坑的,为什么没有默认呢,如果默认使用路径最后一个文件名,不挺好么