所以我有以下问题,
下面的代码行为我的应用程序的某些用户抛出NullPointerException,但是我不知道为什么
String state = Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state)) baseDir = getExternalfilesDir(null).getabsolutePath();else baseDir = getfilesDir().getabsolutePath();
更具体地讲这部分
baseDir = getExternalfilesDir(null).getabsolutePath();
这段代码在OnPostCreate()中调用,如果您想知道的话,我也具有所需的权限.
所以getExternalfilesDir(null)由于某种原因会返回null,即使将其挂载也是如此.
我还在SO上进行了一些搜索,发现了具有相同问题的相关帖子,但没有真正的答案,只有好的答案是this.
那么这仅仅是某些用户电话上的问题还是AndroID终端上的一般问题?
解决方法:
这很奇怪. androID文档说,只有在未安装外部存储设备时,它才会返回null.我认为正确的做法是:
String state = Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state)) { file baseDirfile = getExternalfilesDir(null); if(baseDirfile == null) { baseDir = getfilesDir().getabsolutePath(); } else { baseDir = baseDirfile.getabsolutePath(); }} else { baseDir = getfilesDir().getabsolutePath();}
总结 以上是内存溢出为你收集整理的android-getExternalFilesDir(null)为某些用户返回null全部内容,希望文章能够帮你解决android-getExternalFilesDir(null)为某些用户返回null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)