java.lang.NullPointerException:尝试获取与';can';t读取空数组';

java.lang.NullPointerException:尝试获取与';can';t读取空数组';,java,android,directory,Java,Android,Directory,我收到来自模拟器的“不幸的是‘应用程序名称’已停止”消息。我认为脚本找不到文件夹或无法读取文件名。附件为res文件夹的照片。我尝试了“res/drawable”或“/res/drawable/”等方法,但得到了相同的结果。 我在清单文件中使用了以下权限,但无效 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 您应该修复尝试访问的路径,更改此路径 File folder = new

我收到来自模拟器的“不幸的是‘应用程序名称’已停止”消息。我认为脚本找不到文件夹或无法读取文件名。附件为res文件夹的照片。我尝试了“res/drawable”或“/res/drawable/”等方法,但得到了相同的结果。 我在清单文件中使用了以下权限,但无效

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

您应该修复尝试访问的路径,更改此路径

File folder = new File("D:/Android_Dosyalar/Proje/PGNViewer/app/src/main/res/drawable");
到位于设备中的路径,例如:

File folder = new File("/data/chessactivepgnviewer.com.pgnviewer/");

您的问题在于以下几行:

File folder = new File("D:/Android_Dosyalar/Proje/PGNViewer/app/src/main/res/drawable");
File[] listOfFiles = folder.listFiles();
作为列表文件,它似乎是空的

如果您想获得所有可绘图项的列表,您可能需要尝试以下方法:

Field[] drawables = chessactivepgnviewer.com.pgnviewer.R.drawable.class.getFields();

for (Field f : drawables) {
    try {
         System.out.println("R.drawable." + f.getName());
    } catch (Exception e) {
         e.printStackTrace();
    }
}

该文件夹不存在。因此,folder.listFiles()返回null


如果您将图片放入apk,请使用资产文件夹。

谢谢您的回答。我会检查并返回。。。文件夹
不是
null
listOfFiles
可以是
null
,但不能是
文件夹
。您好,我想我把注释放错地方了,或者后来放在那里了。我试过你上面的片段,我得到的是:我刚刚得到一个黑屏。但是,我可以从logcat中看到它正在查看文件。你能理解出什么地方出了问题吗?…11-05 23:22:33.189 10517-10542/chessactivepgnviewer.com.pgnviewer W/EGL_仿真:eglSurfaceAttrib未实现11-05 23:22:33.189 10517-10542/chessactivepgnviewer W W/OpenGLRenderer:无法设置EGL_交换_行为表面0xb431b680,error=EGL_SUCCESS–25237-25237/chessactivepgnviewer.com.pgnviewer I/System.out:R.drawable.snackbar_background 11-05 23:39:50.192 25237-25237/chessactivepgnviewer.com.pgnviewer I/System.out:R.drawable.wb 11-05 23:39:50.192 25237-25237/chessactivepgnviewer.com/System.out:R.drawable.wk 11-05 23:39:50.19225237-25237/chessactivepgnviewer.com.pgnviewer I/System.out:R.drawable.wn 11-05 23:39:50.192 25237-25237/chessactivepgnviewer.com.pgnviewer I/System.out:R.drawable.wp读取的文件。如果我从代码段中删除大括号,它将显示一个带有大括号的空屏幕和一个黑屏。我想黑屏取决于onCreate/onResume中的其他内容。这个方法本身就可以工作,因为我在我的几个应用程序上检查了它。发布您当前的代码。谢谢您的回答。我会检查并返回。。。问候–Aziz S.KuralDo您有权读取清单文件中的外部存储?非常抱歉,我将答案放错了位置。当做
File folder = new File("/data/chessactivepgnviewer.com.pgnviewer/");
File folder = new File("D:/Android_Dosyalar/Proje/PGNViewer/app/src/main/res/drawable");
File[] listOfFiles = folder.listFiles();
Field[] drawables = chessactivepgnviewer.com.pgnviewer.R.drawable.class.getFields();

for (Field f : drawables) {
    try {
         System.out.println("R.drawable." + f.getName());
    } catch (Exception e) {
         e.printStackTrace();
    }
}