一、
本文主要是从官方文档中筛选出一些常见的适配项,若有任何纰漏或需要补充的,欢迎大家在评论区指出。
二、版本适配
1. 限制 HTTP 网络请求
Android 9.0 中限制了 HTTP(明文传输)网络请求,若仍继续使用HTTP请求,则会在日志中提示以下异常(只是无法正常发出请求,不会导致应用崩溃):
java.net.UnknownServiceException: CLEARTEXT communication to xxx not permitted by network security policy
适配的方法如下:
在资源目录中新建一个 xml 文件,例如 xml/network_security_config.xml,然后在文件中填写以下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
在AndroidManifest.xml进行配置:
<application
...
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
2. 弃用 Apache HTTP Client
由于官方在 Android 9.0 中移除了所有 Apache HTTP Client 相关的类,因此我们的应用或是一些第三方库如果使用了这些类,就会抛出找不到类的异常:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;
若需要继续使用 Apache HTTP Client ,可通过以下方法进行适配:
<