【问题标题】:Why isn't the my root folder created?为什么没有创建我的根文件夹?
【发布时间】:2011-08-18 02:11:34
【问题描述】:

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

我使用 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" />

【问题讨论】:

  • 尝试从“/AppRoot”中删除前导“/”。
  • @mportuesisf - 不,这也不行,我也试过了
  • 你在manifest中有外部存储权限吗?
  • @Chris Stratton - 很好,是的,是权限.. 谢谢

标签: java android motorola


【解决方案1】:

完成上一个答案:

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

  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  /* do job on external storage */
  }

【讨论】:

  • 好点,谢谢让我知道,我以前没有这个检查条件。
【解决方案2】:

为了访问文件系统,您必须将适当的权限添加到您的 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>

【讨论】:

  • 很好,是的,是权限..谢谢
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2016-02-05
  • 2020-06-05
相关资源
最近更新 更多