Android 升级TargetSdkVersion30

一、概要

因为国内应用市场已经要求TargetSdkVersion=30及以上才能上架,所以需要升级版本。

主要涉及内容以下讲解。

二、开发

1.强制分区存储

有很多文章已经介绍了,参考:
https://blog.csdn.net/unreliable_narrator/article/details/127250034
https://guolin.blog.csdn.net/article/details/113954552

所以目前操作文件的方式有三种:

1.老古董:File Path

使用方式好说。
存储目录介绍一下:
如果升级了项目的TargetSdkVersion=30及以上,那么就不可以使用Enviroment.getExternalStorageDirectory()

  1. 如果是APP升级到该版本,那么路径还在,但是访问会提示权限不够
  2. 如果是新安装该版本的APP,那么当你使用该目录作为根目录创建文件夹时,就会失败

所以此时想仍旧使用File Path的方式来保存文件,有两种方法:

  1. 使用Enviroment.getExternalStoragePublicD

当将Android项目的`targetSdkVersion`升级Android 11 (API级别30)及以上时,可能会遇到与`ConstraintLayout`相关的错误,这是因为新版本的系统对布局组件的行为进行了调整,尤其是在处理视图约束(Constraints)上。 在Android 11中,Google引入了一些新的变化,比如View Binding API,这可能导致之前基于旧版SDK使用的依赖库或XML约束配置不再适用。当你尝试运行应用时,`ConstraintLayout`可能会抛出关于`Constraints`解析或支持的问题,例如找不到视图、约束冲突等。 解决这个问题通常需要做以下步骤: 1. **检查约束设置**:确保你的`ConstraintLayout` XML文件里的约束(如`app:layout_constraint*`属性)已经适应了最新的约束语法,特别是在使用`androidx.constraintlayout.widget.ConstraintLayout`而不是旧版`com.android.support.constraint.ConstraintLayout`。 2. **更新依赖**:如果你正在使用第三方库,确认其是否支持Android 11以上的版本,并将其更新到最新版本。 3. **启用View Binding**:如果尚未启用,可以在`build.gradle`文件中添加`implementation 'androidx.databinding:viewbinding:4.1.0'`并创建对应的`ViewModel`绑定类。 4. **检查并修复错误**:运行应用,查看错误日志,找出具体的错误提示,根据它提供的信息修改布局或代码。 5. **测试兼容**:在模拟器和真机上分别测试,确保在所有目标API级别上都能正常工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ganshenml

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值