Android getExternalCacheDir()精确位置

Android getExternalCacheDir()精确位置,android,Android,我正在使用下面的方法在我的应用程序的缓存中保存一个图像文件 File path=getActivity().getExternalCacheDir(); 在我的日志中,我发现我的图像保存在手机的内部存储器中 /storage/emulated/0/Android/data/me.XXX.XXX/cacheimagefile100.png我可以访问该图像文件,以便使用intent与其他应用程序共享。但是一些使用我的应用程序的用户在这行代码中出现错误,比如 Attempt to invoke

我正在使用下面的方法在我的应用程序的缓存中保存一个图像文件

   File path=getActivity().getExternalCacheDir();
在我的日志中,我发现我的图像保存在手机的内部存储器中
/storage/emulated/0/Android/data/me.XXX.XXX/cacheimagefile100.png
我可以访问该图像文件,以便使用intent与其他应用程序共享。但是一些使用我的应用程序的用户在这行代码中出现错误,比如

Attempt to invoke virtual method 'java.io.File android.app.Activity.getExternalCacheDir()' on a null object
我不知道为什么它越来越大。甚至我的应用程序也使用内部存储(操作系统版本Android 7),而不是外部SD卡存储缓存

有人能告诉我这背后的原因吗? 有什么好办法?
我使用了getCacheDir()方法。但是当我通过intent共享文件时(基本上是图像),图像是空的和空的。请告诉我此问题的解决方法。

查看此答案getActivity()返回空值。因此您有
null.getExternalCacheDir()我正在使用片段。所以对于上下文,我使用getActivity()方法@greenappsYes,我理解。但是
getActivity()==null
。现在你打算怎么办?您至少可以在使用前检查null。