在开发过程中,使用File.mkdirs()会返回false创建文件夹失败,有可能是权限不够的原因,需要在AndroidManifest.xml中添加如下权限:
专注于为中小企业提供网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业向阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
但有的权限可能会报Permission is only granted to system apps错误,导致权限申请失败,
原因是运行时权限:API 23之前的版本都是自动获取权限,而从 Android 6.0 开始添加了权限申请的需求,更加安全。在android6.0以前,我们程序需要的权限我们一般只需要在AndroidManifest.xml中直接更新就好,然而Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测。
如果你的程序在6.0以上的手机报权限的问题,简单粗暴最有效的解决方法是在工程下的build.gradle中的 targetSdkVersion 改为21或22,因为Android6.0系统或以上默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限。
在包里创建文件,只需要右键点击包,然后选择对应的类型文件,比如java类型/接口/xml类型,点击即可创建,输入名字或者有没有父类引用,点击确定,就会在包路径下创建好文件.
在android3.0之前版本,要适配指定的分辨率,需将layout文件夹定义成如下名称:layoutlayout-1024x768layout-1024x600layout-1280x768在android3.0后,要适配如上的分辨率,需将高度减去48像素,即底部状态栏的高度,android方可识别。针对以上分辨率,android4.0的layout文件夹应该定义为如下名称:layoutlayout-1024x720layout-1024x552layout-1280x720还有一种情况如果是平板有可能是竖屏的需要是layoutlayout-976x768layout-976x600layout-976x768格式如上。用法与正常的相同。手机会根据分辨率,自己找对应的布局,不用控制只需在res下按上述方式,新建对应layout就可以注:大数必须在前边
Android 10 改变了文件的存储方式不允许应用随意创建文件夹了,要用安卓提供的文件夹,提供的文件夹如下
public static void createPath(String path) {
File file =new File(path);
if (!file.exists()) {
try {
// 获取父文件
File parent = file.getParentFile();
if( !parent.exists() ) {
parent.mkdirs(); //创建所有父文件夹
}
file.createNewFile();
}catch (IOException e) {
e.printStackTrace();
}
}
}
步骤:
右键主工程 - Open Module Setting - app - Dependencies - + -module
build.gradle中:
我们一般开发的时候都会封装一些基类,还有一些工具类,这里都要复制到 Library 中去。复制过去先修改各种各样的错误,一般都是R文件路径的错误,基类和工具类都没有错误之后。
开始抽离具体的功能模块,剪切过去之后,就是各种改改改,大部分都是导包错误,因为路径变了,删除之前的导入正确的就可以了。