如何添加系统级权限 android:sharedUserId=“android.uid.system“

1,581 阅读2分钟

当我们在项目中添加系统级权限时,运行时会有错误提示如下:

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

之所以报错,是添加系统级权限之后还需要在目标系统的platform密钥来重新给apk文件签名。我这里用的签名文件是从目标系统中找到的,不是自己生成的。(目标系统是你的apk要安装的Android设备使用的Android系统)
这里以android.uid.system权限为例来说明我们开发的Android应用是怎么获取到该权限的

  1. 添加系统级权限到AndroidManifest.xml
android:sharedUserId="android.uid.system"

在这里插入图片描述

  1. 添加已有的签名到build.gradle
    添加签名文件的storePassword(密钥库密钥)、keyAlias(密钥标识名)、keyPassword(密钥密码)
android {
    signingConfigs {
        platform {
            storeFile file('D:\\aaa.keystore')
            storePassword '123456'
            keyAlias 'aaa'
            keyPassword '123456'
        }
    }
}

  1. Android Studio选择File->Project Structure->Modules
    在Signing Configs里可以看到platform已经添加到了Modules中。确认添加成功即可,不做任何变动
    在这里插入图片描述
    Build Variants这一栏是生成apk的配置,内置了有两种生成apk的方式,分别是debug和release
    debug用于调试,平时我们把项目代码写好编译完成后默认用的是debug生成的apk;
    release用于正式发布供用于下载安装,这种方式需要先创建密钥库(密钥库是apk的证书,当apk有更新时,是需要证书匹配才能更新的),填写了一串信息后通过Build->Build Bundles/APKS->Build APKs生成apk

回到正题,Build Variants中选择生成方式后,在Signing Config中添加要用到的签名,保存并退出窗口
在这里插入图片描述
最后,修改发布版本,在android studio界面的左下角,修改build variant,接着,run即可运行项目,可以发现IDE不再报错了,android:sharedUserId=“android.uid.system“权限已经添加到应用中了

本文转自 blog.csdn.net/qq_34205684…,如有侵权,请联系删除。