android4.4 上File.list()一直为null是怎么回事? 安卓文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state)) { 代码.....}把代码放到里面试下 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File f=Environment.getExternalStorageDirectory(); Log.d("MSG", "absolute path "+ f.getAbsolutePath()); Log.d("MSG", "is dir "+ f.isDirectory()); Log.d("MSG", "canRead "+ f.canRead()); Log.d("MSG", "canWrite "+ f.canWrite()); String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { Log.d("MSG", "Environment.MEDIA_MOUNTED"); } String[] fileNames= f.list(); Log.d("MSG", fileNames==null?"fileNames is null":"fileNames is not null"); for(String string:fileNames){ Log.d("MSG", "file -- "+string); } } "Environment.MEDIA_MOUNTED"仍然是null pointer 进了if语句,并且log打印了 "Environment.MEDIA_MOUNTED", 下面list还是null 代码在我的手机和平板上运行,都是正常的。没有null. 4.4 列sd卡根目录我也遇到这个问题了,返回的list为null。暂时还不清楚,楼主可以试试列子目录看看能不能列出来。 listFiles() 在4.4上也有null的问题,在4.2上没有问题。暂时原因不明。 刚才试了下列dcim目录也列不了。。用的这个返回的file。Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) 我能弱弱说一句,请看下api,4.4的变化里面有讲到对sdcard读写的变化 需要的权限<permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 我在androidmanifest里面都声明了啊 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>你权限加错了,是加这个 帮忙看下什么问题 有谁知道这个控件的实现原理吗? 请教一下关于JNI返回结构体数组的问题! 用WindowManager调用addView后,画图无法更新 请问关于cursor的问题 提示框的用法 android 执久化框架,hibernate框架 请教高手一个问题 求思路 凤凰网顶部导航 添加频道功能是怎么实现的,最好有demo Android studio特别卡 总是出各种问题怎么办 android 加载网络图片资源出现异常 手贱更新SDK到23.0.2
if (Environment.MEDIA_MOUNTED.equals(state)) {
代码.....
}
把代码放到里面试下
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File f=Environment.getExternalStorageDirectory();
Log.d("MSG", "absolute path "+ f.getAbsolutePath());
Log.d("MSG", "is dir "+ f.isDirectory());
Log.d("MSG", "canRead "+ f.canRead());
Log.d("MSG", "canWrite "+ f.canWrite());
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
Log.d("MSG", "Environment.MEDIA_MOUNTED");
}
String[] fileNames= f.list();
Log.d("MSG", fileNames==null?"fileNames is null":"fileNames is not null");
for(String string:fileNames){
Log.d("MSG", "file -- "+string);
}
} "Environment.MEDIA_MOUNTED"仍然是null pointer
代码在我的手机和平板上运行,都是正常的。没有null.
暂时还不清楚,楼主可以试试列子目录看看能不能列出来。
暂时原因不明。
刚才试了下列dcim目录也列不了。。
用的这个返回的file。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
需要的权限
<permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我在androidmanifest里面都声明了啊