如何在android中检查Environment.DIRECTORY_文档为空

如何在android中检查Environment.DIRECTORY_文档为空,android,Android,我试图以的形式运行一个检查,如果(Environment.DIRECTORY\u DOCUMENTS==null)但是当我到达这一行时,我得到一个null指针异常。现在我知道我正在测试的设备上没有Documents目录,所以它应该给我一个null值,并移动到代码块中,但我希望它实际检查它。我只是给出了一个错误 我的日志显示: 03-18 11:11:24.667: E/AndroidRuntime(5183): FATAL EXCEPTION: main 03-18 11:11:24.667:

我试图以
的形式运行一个检查,如果(Environment.DIRECTORY\u DOCUMENTS==null)
但是当我到达这一行时,我得到一个null指针异常。现在我知道我正在测试的设备上没有Documents目录,所以它应该给我一个null值,并移动到代码块中,但我希望它实际检查它。我只是给出了一个错误

我的日志显示:

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)
如何(以编程方式)检查我的设备上是否有文档目录?

如图所示,字段添加在API级别19中(Android 4.4(KITKAT))

确保在项目和
AndroidManifest.xml
中使用API 19,因为在API级别19中添加了字段(Android 4.4(KITKAT))


确保在项目中使用API 19,并且在API级别19中添加了
AndroidManifest.xml

Environment.DIRECTORY\u DOCUMENTS字段。 因此,您可以按以下方式更改代码以支持不同版本:

File currentDir = null;
if (Build.VERSION.SDK_INT >= 19) {
            currentDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
        }else{
            currentDir = new File(Environment.getExternalStorageDirectory() + "/Documents");
        }

API级别19中添加了Environment.DIRECTORY_DOCUMENTS字段。 因此,您可以按以下方式更改代码以支持不同版本:

File currentDir = null;
if (Build.VERSION.SDK_INT >= 19) {
            currentDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
        }else{
            currentDir = new File(Environment.getExternalStorageDirectory() + "/Documents");
        }