首页 > 解决方案 > Android 从 DCIM 文件夹中获取图像

问题描述

我正在构建画廊应用程序。我得到了代码中图片的路径,如图所示。在 logcat 中,我可以看到的消息,I/DCIM PATH: /storage/emulated/0/DCIM/Camera我在这个文件夹中有 3 张图片。然而,代码没有列出其中的文件,并给出了一个错误,Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference.这里有什么问题?还有库可以从存储中检索图像吗?

    private void getImagesFromDCIM() {
    pDialog.setMessage("Fetching images from DCIM folder...");
    pDialog.show();

    File dcimPath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/Camera");
    if (dcimPath.exists()) {
        Log.i("DCIM PATH", dcimPath.toString());
        pDialog.hide();
        Log.i("DCIM PATH", dcimPath.listFiles().toString());
        File[] files = dcimPath.listFiles();

        for (int i = 0; i < files.length; i++) {
            Image image = new Image(files[i].getName(), files[i].toString());
        }
        mAdapter.notifyDataSetChanged();
    } else {
        pDialog.hide();
    }
}

在此处输入图像描述

标签: android

解决方案


我想我发现了问题所在。

只调用listFiles()一次!


推荐阅读