0

我尝试在我的主根目录中创建一个外部存储公共目录,并编写了以下代码行。代码编译正确,共享首选项正确更新,但未在设备中创建根文件夹。

我使用 Atrix(它有这个内部存储,没有 SD 卡)。我还尝试下载 Gingerbread 的 Atrix Addon,并尝试在模拟器中编译它,但程序崩溃了。(但它在真实设备中运行良好。)

  1. 为什么模拟器崩溃(我在模拟器中有 1 GB SD 卡)?(它因空指针异常而崩溃)

  2. 为什么在真实设备中没有创建文件夹?

设备配置:

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" />
4

2 回答 2

1

完成先前的答案:

在对其进行任何操作之前不要忘记检查外部存储状态。

  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  /* do job on external storage */
  }
于 2011-08-17T18:11:34.680 回答
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>
于 2011-08-17T17:50:43.073 回答