首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中检查Environment.DIRECTORY_DOCUMENTS为空

如何在android中检查Environment.DIRECTORY_DOCUMENTS为空
EN

Stack Overflow用户
提问于 2015-03-18 17:16:20
回答 2查看 2.9K关注 0票数 1

我试图以if (Environment.DIRECTORY_DOCUMENTS == null)的身份运行检查,但是当我到达这一行时,我得到了一个空指针异常。现在我知道我正在测试的设备上没有Documents Directory,所以它应该给我一个空值并移到代码块中,但我希望它真正地检查它。我只是给出了一个错误。

我的logcat显示:

代码语言:javascript
复制
03-18 11:11:24.667: E/AndroidRuntime(5183): FATAL EXCEPTION: main
03-18 11:11:24.667: E/AndroidRuntime(5183): java.lang.NoSuchFieldError: android.os.Environment.DIRECTORY_DOCUMENTS
 03-18 11:11:24.667: E/AndroidRuntime(5183):    at com.example.testapp.MainActivity$3.onClick(MainActivity.java:640)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:168)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.os.Looper.loop(Looper.java:137)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at android.app.ActivityThread.main(ActivityThread.java:4514)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at java.lang.reflect.Method.invokeNative(Native Method)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at java.lang.reflect.Method.invoke(Method.java:511)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
 03-18 11:11:24.667: E/AndroidRuntime(5183):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
03-18 11:11:24.667: E/AndroidRuntime(5183):     at dalvik.system.NativeStart.main(Native Method)

如何(以编程方式)检查我的设备上是否有文档目录?

EN

回答 2

Stack Overflow用户

发布于 2016-12-26 00:38:44

接口版本19中增加了Environment.DIRECTORY_DOCUMENTS字段,您可以修改如下代码,以支持不同版本:

代码语言:javascript
复制
File currentDir = null;
if (Build.VERSION.SDK_INT >= 19) {
            currentDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
        }else{
            currentDir = new File(Environment.getExternalStorageDirectory() + "/Documents");
        }
票数 8
EN

Stack Overflow用户

发布于 2015-03-18 17:19:39

如此处所示,在Android 19 (Android4.4(KITKAT))中添加了Environment.DIRECTORY_DOCUMENTS字段。

确保在项目和AndroidManifest.xml中使用API19

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29118008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档