Android getDir返回null

时间:2015-03-10 14:14:39

标签: android file nullpointerexception

我的代码:

public class StorageHelper {
public static File getFileDir(Context context, String folder) {
    File sdDir = null;
    boolean sdCardExist = Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED);
    if (sdCardExist) {
        sdDir = context.getExternalFilesDir(folder);
        Log.println(Log.ERROR, "ZGStorage", "using External storage");
    } else {
        sdDir = context.getDir(folder, Context.MODE_PRIVATE);
        Log.println(Log.ERROR, "ZGStorage", "using Internal storage");
    }
    return sdDir;
}

如果此代码有任何问题?因为在某些设备上调用getFileDir()会变为空,但在大多数情况下会正常工作。

2 个答案:

答案 0 :(得分:0)

您的设备(SD卡)中是否有外部存储设备?在这种情况下,请向您的Manifest添加以下权限:

android.permission.READ_EXTERNAL_STORAGE 
android.permission.WRITE_EXTERNAL_STORAGE

答案 1 :(得分:0)

重启设备后,您可以测试一次。 有时在连接/拆卸USB调试设备后会产生问题。