我正在构建画廊应用程序。我在代码中获得图片的路径,如图片所示。在日志中,我可以看到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();
}
}

发布于 2019-06-16 05:41:54
我解决了我的问题,代码工作正常。我只需通过Settings > Apps > "MyApplication" > Permissions > Storage许可我的应用程序,问题就解决了。
发布于 2019-06-15 06:19:40
我想我知道问题出在哪里了。
只调用listFiles()一次!
https://stackoverflow.com/questions/56605438
复制相似问题