在我的应用程序中,当我尝试在应用程序内部存储下创建目录结构时,我看到很少有崩溃,例如/data/data/[pkgname]/x/y/z...
.
这是失败的代码:
File clusterDirectory = new File(MyApplication.getContext().getFilesDir(), "store");
File baseDirectory = new File(clusterDirectory, "data");
if (!baseDirectory.exists()) {
if (!baseDirectory.mkdirs()) {
throw new RuntimeException("Can't create the directory: " + baseDirectory);
}
}
我的代码在尝试创建以下路径时抛出异常:
java.lang.RuntimeException: Can't create the directory: /data/data/my.app.pkgname/files/store/data
我的清单指定了权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
,即使为此目的不需要它(由于 Google Maps Android API v2,我的应用程序实际上是必需的)。
它似乎与手机无关,因为我在旧手机和新手机上都遇到了这个异常(最后的崩溃报告是带有 Android 4.3 的 Nexus 4)。
我的猜测是该目录/data/data/my.app.pkgname
首先不存在,但 mkdirs() 由于权限问题而无法创建它,这可能吗?
有什么提示吗?
谢谢