Android 从SD卡列出文件和目录时出现NullpointerException
我试图在nexus7中列出sdcard中的所有文件,但遇到nullpointer异常 下面的代码在三星tab2中运行良好,但在nexus7中出现问题 如果有人有主意,请帮助我Android 从SD卡列出文件和目录时出现NullpointerException,android,file,list,Android,File,List,我试图在nexus7中列出sdcard中的所有文件,但遇到nullpointer异常 下面的代码在三星tab2中运行良好,但在nexus7中出现问题 如果有人有主意,请帮助我 ArrayList<String> listFolders = new ArrayList<String>(); ArrayList<String> listFiles = new ArrayList<String>(); String globalP
ArrayList<String> listFolders = new ArrayList<String>();
ArrayList<String> listFiles = new ArrayList<String>();
String globalPath = "";
public void onClikButton(View v) {
String path = Environment.getExternalStorageDirectory()+"/";
getDirectory(path);
}
public void getDirectory(String path) {
//String setPath = path;
globalPath = path;
Log.i("getDirectory","globalPath = " + globalPath);
String[] splitPath = path.split("/");
int count = splitPath.length;
Log.i("getDirectory","globalPath count = " + count);
if(count==3)
{
// Root
btnBack.setVisibility(View.GONE);
}
else
{
btnBack.setVisibility(View.VISIBLE);
}
File directory = new File(globalPath);
File[] listDirectory =null;
if(directory.exists()) {
listDirectory = directory.listFiles();
for(int i=0; i<listDirectory.length;i++)
{
File getFolder = listDirectory[i];
if(getFolder.isDirectory())
{
listFolders.add(getFolder.getName());
}
}
}
}
提前谢谢 更换
String path = Environment.getExternalStorageDirectory()+"/";
String path = Environment.getExternalStorageDirectory()+"/";
与
用这个替换你的onclick按钮
public void onClikButton(View v) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
getDirectory(path);
}
请执行以下操作:
替换
if(count==3)
与
替换
if(count==3)
与
我在堆栈溢出上发现了这个…可能会有帮助 似乎是一个好消息。MTP缓存在手机重新启动之前会过期 解决办法是: 清除媒体存储应用程序的数据 使用应用程序强制更新 或者干脆避免使用USB。这个问题不会影响其他访问文件的方法。例如,尝试传输文件
无论如何,所有内容都是指向/storage/emulated/legacy的链接,它本身就是指向/mnt/shell/emulated/0的链接,其中包含文件您在哪里得到异常?您在日志中看到了什么?Log.igetDirectory,globalPath=+globalPath;记录的路径是什么?您添加了正确的权限吗..我正在日志12-26 15:49:53.580:I/getDirectory6322:globalPath=/storage/emulated/0/。首先检查给定的路径是否可用它是无效的,因为路径是字符串变量,并且我们分配了文件类型。请再次检查。感谢回复@nitesh goel。我的代码在三星tab2中工作,但在nexus7中不工作。是的,这是nexus设备上的一个特殊问题。您可以查看。
Environment.getExternalStorageDirectory()
if(count==3)
if(path.equals(Environment.getExternalStorageDirectory().getAbsolutPath()))