我正在构建画廊应用程序。我在代码中获得了图片中的图片路径,就像在图片中一样。在日志猫中,我可以看到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();
}
}
答案 0 :(得分:0)
我想我发现了问题所在。
仅致电listFiles()
一次!
答案 1 :(得分:0)
我解决了我的问题,代码正常工作。我只需通过Settings > Apps > "MyApplication" > Permissions > Storage
授予我的申请许可,问题就解决了。