Android12 适配注意点

1、Installed Build Tools revision 31.0.0 is corrupted

参考该篇文章

2、exported属性声明变更

当应用的targetSdkVersion升级到了31并且是以Android12设备作为安装平台(以下简称为以Android12为目标平台的应用),当在AndroidManifest中声明的组件,如果有加上标签,必须显示的声明exported的属性,否则应用是无法在Android12的设备上进行安装的。

如果没有排除这个问题,在小米Android 12的真机上会提示用户安装失败,提示只有 INSTALL_FAILED_USER_RESTRICTED,很容易误导用户按照以往的经验去排查,耗时费力

解决方案:
1、直接通过Android studio 解析安装包,查找使用intent-filter的组件,然后依次加上exported声明。
2、针对sdk中声明的组件,可以利用AndroidManifest的merge特性,在app项目的AndroidManifest声明一样的组件,加上exported即可。

3、pendingIntent可变性变更

如果应用是以Android12为目标平台的应用,在创建PendingIntent的时候,一定要要加上可变性flag,否则运行时会抛出异常


image.png

找到相关使用处,做相应修改,可封装如下方法

public static int getFlagWithInMutable(int flag) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
        flag = flag | PendingIntent.FLAG_IMMUTABLE;
    }
    return flag;
}

你可能感兴趣的:(Android12 适配注意点)