android-getExternalFilesDir(null)为某些用户返回null

android-getExternalFilesDir(null)为某些用户返回null,第1张

概述所以我有以下问题,下面的代码行为我的应用程序的某些用户抛出NullPointerException,但是我不知道为什么Stringstate=Environment.getExternalStorageState();if(Environment.MEDIA_MOUNTED.equals(state))baseDir=getExternalFilesDir(null).getAbsolutePath();else

所以我有以下问题,

下面的代码行为我的应用程序的某些用户抛出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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存