我真的需要有人在这里指导外部存储或SD卡的一些问题。我不会陷入复杂的境地。我有一个名为MyVideos
的文件夹。它位于Motrola Xoom的SD卡文件夹中;路径为"/mnt/sdcard-ext/MyVideos.
文件夹已存在。但是,我遇到了一些奇怪的错误。例如,如果我使用以下代码检查文件夹是否存在:
File myDirectory = new File(defaultStorage, "/MyVideos/");
if (myDirectory.exists())
{
my code: lets say true
}
else
{
my code: false
}
其中defaultStorage is = "/mnt/sdcard-ext"
。它总是返回假。它应该返回true,因为文件夹肯定存在于那里。假设文件夹存在,我执行其他操作,如
for (File f : myDirectory.listFiles())
{
if (f.isFile())
{
filenames.add(f.getName()); //add to array
}//if closes
}//for closes
我在以下行获得了FATAL异常
for (File f : myDirectory.listFiles())
错误堆栈如下:
E/AndroidRuntime(22644): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity
E/AndroidRuntime(22644): Caused by: java.lang.NullPointerException
我刚才提到了堆栈中重要的东西。确切地说,这是一个NullPointerException。虽然我正在使用
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在我的清单文件中。即使这样它也行不通。最令人惊讶的元素是它在这里运行良好;但是在美国有一个客户,他的所有设备都崩溃了。在英国或美国的设备的许可设置是否有任何不同。如果你在这里帮助我,我将感谢你..这是一个对我来说很大的问题。 感谢
答案 0 :(得分:0)
根据documentation,您所描述的州意味着您无法访问外部媒体存储:
public static final String MEDIA_SHARED
在API级别1中添加了getExternalStorageState(),如果媒体未安装,则返回MEDIA_SHARED,并通过USB大容量存储共享。
常数值:“共享”
您需要转到USB Mass Storage选项并关闭USB存储设备。
PS:感谢DigCamara,我从这个SO answer复制了。
由于