本文主要是介绍Android10(Android Q) 适配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 升级步骤
- 我遇到的问题
- 知乎选择控件崩溃
- 极光推送在安卓10上失效
- open failed: EACCES (Permission denied)
- Didn't find class "org.apache.http.client.methods.HttpPost"
- 鸿洋大神推荐的文章
前言
如果项目还没适配AndroidX,请 先适配Android X
然后再适配Android10,关于Android10的一些变化,请 查看官方文档
升级步骤
1、先把 gradle.properties 中的 TARGET_SDK_VERSION 改为 29
把项目运行到安卓10的手机上实际测试下,哪里崩溃就解决哪里
2、然后根据 官方文档 中的一些变化,针对性的再查找项目中涉及到的地方
3、第三方库更新,一般活跃的项目早已适配了Android10,我们只需要更新到最新版本即可
我遇到的问题
知乎选择控件崩溃
一般活跃的项目早已适配了Android10。例如项目中用了知乎的图片选择器Matisse,打开github matisse主页,点击 releases
可以看到在最新的版本中已经修复了Android Q上的崩溃问题,所以我们可以放心的把版本改为最新版了,这个问题就解决了
极光推送在安卓10上失效
极光推送在2、3月份进行了更新,使用 tag 和 alias 都发生了变化,因此,sdk需要更新,按照 官方3分钟demo 修改自己项目中的极光推送
open failed: EACCES (Permission denied)
项目中有一个图片剪裁控件,选择图片后,报错 open failed: EACCES (Permission denied)
,开始以为是没有读写权限造成的,结果并不是
解决办法是在AndroidManifest.xml的 application 节点增加 android:requestLegacyExternalStorage="true"
,即
需要注意的是,gradle.properties 中的 COMPILE_SDK_VERSION、BUILD_TOOLS_VERSION 都要改为 29 版本,否则运行时,Manifest 会提示找不到这个属性
Didn’t find class “org.apache.http.client.methods.HttpPost”
网址是http://
开头的网址网络请求,就报错Didn't find class "org.apache.http.client.methods.HttpPost"
,https://
的网址就没问题
解决办法是在manifest中添加
android:usesCleartextTraffic="true"<uses-library android:name="org.apache.http.legacy" android:required="false" />
如图
鸿洋大神推荐的文章
Android 10存储适配一一我们项目是这么干的!
这篇关于Android10(Android Q) 适配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!