php小编草莓为您解答java编程中常见问题:即使具有权限,也无法为应用程序创建目录或文件的情况。这种问题可能出现在操作系统权限设置、文件路径错误、文件已存在等方面。通过排查文件路径、检查操作系统权限、确保文件不存在等方法,可以解决这一问题,确保程序正常运行。如果您遇到类似情况,不妨尝试以上方法看看是否能解决您的困扰。
我有一个几年前制作的应用程序。最近我只是重新编译了它,做了很少的更改,这样我就可以更改目标 sdk 并且仍然在 play 商店中列出。
事实证明,这从根本上破坏了某些手机(包括我自己的手机)中的应用程序。在上传之前,我在另一部手机上对其进行了测试,并且运行良好(android 版本 8.1.0)。我的手机运行的是 android 11(无法运行)。
问题似乎在于在内部存储中创建和读取文件的能力,而应用程序的重点是维护单个文件。
这是我尝试创建目录的函数。这只是我在创建时调用的测试函数,它不是原始应用程序的一部分:
public static void AttemptDirCreate(){
String dirname = Environment.getExternalStorageDirectory().toString() + "/this_is_a_test";
File dir = new File(dirname);
System.err.println("Attempting to create directory: '" + dirname + "'");
boolean make_result = false;
if (!dir.exists()) {
try {
make_result = dir.mkdir();
}
catch (SecurityException se) {
System.err.println("ERROR. Could not make dir. Reason: " + se.getMessage());
}
}
if (make_result){
System.err.println("MKDir result is true");
}
else {
System.err.println("MKDir result is false");
}
if (dir.exists()){
System.err.println("Dir has been created");
}
else {
System.err.println("Was unable to create dir");
}
}问题是没有创建目录并且没有抛出异常。当我进入应用程序信息时,我看到文件和媒体的权限。
尝试创建目录的路径是:'/storage/emulated/0/this_is_a_test'
据我所知,这是正确的路径。该应用程序在首次安装时确实询问了我的权限。
那么为什么它不能创建目录呢?如何找出问题并解决它?
澄清一下,这个完全相同的功能适用于 android 8.1.0,但不适用于 android 11。不确定,截止点是什么。
您无法在 Android 11+ 设备的外部存储根目录中创建文件和目录。
而是使用已有的公共目录之一。
喜欢 DCIM、图片、文档...
以上就是即使有权限,也无法为我的应用程序创建目录或文件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号