我尝试在主根目录中创建外部存储公共目录,并编写以下代码行。代码编译正确,共享首选项正确更新,但根文件夹未在设备中创建。
我使用Atrix(它有内部存储而没有SD卡)。我也尝试下载用于Gingerbread的Atrix Addon,我尝试在模拟器中编译它并且程序崩溃了。 (但它在真实设备中运行得非常好。)
为什么模拟器崩溃(我在模拟器中有1 GB的SD卡)? (它与空指针异常崩溃)
为什么文件夹不是在真实设备中创建的?
设备配置:
MinSDK - 8 SDK版本 - 10
代码段
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ixfer_main);
File rootDirectory = new File(getExternalFilesDir(null),"/AppRoot");
rootDirectory.mkdirs(); // also tried using mkdir() - still no good
编辑:这是权限问题。修复并立即工作。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 0 :(得分:1)
完成上一个回答:
在对其进行任何操作之前,请不要忘记检查外部存储状态。
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
/* do job on external storage */
}
答案 1 :(得分:0)
要访问文件系统,您必须在android manifest xml文件中添加适当的权限。如果没有适当的权限,您的文件对象将不会被创建,您将获得一个空引用。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.app.myapp" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>