Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]及相关知识

本文探讨了Android Studio真机运行时出现特定错误的原因及解决方案。主要介绍了AndroidManifest.xml文件中android:sharedUserId属性的作用,并提供了两种解决方法:一是直接删除该属性;二是通过签名来确保多个应用间的数据安全共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android studio 真机运行,出现如下提示:

查看报错信息:

出现这样的情况,是由于在项目AndroidManifest.xml中,设置了

解决这个问题,两种解决办法,办法一,非常简单,非常暴力,直接删除android:sharedUserId="android.uid.system"就ok了;办法二,签名,这个详细的一会再说。

对于AndroidManifest.xml文件,简书关于AndroidManifest.xml详解:https://www.jianshu.com/p/f535c0f6f65f 的介绍,我在这里就不做过多赘述。在mainfest文件中,有一个”android:shareUserId“的属性,这个是我在这里要想分享的知识点。

apk在安装时,有一个userid的标志。它的特点是:作为apk身份的标识符;不同apk(用户)间相互访问数据默认是禁止的。这个类似于iOS的BundleID,但与它不同。那么,对于不同apk之间访问数据,该怎么办呢?有两个方法提供数据相互访问:(1)使用Share Preference./Content Provider ,apk通过指定接口和数据供其它apk读取,需要开发者实现接口和指定share的数据(2)在配置文件mainfest中配置同一userid,通过共享userid,运行在同一进程中,可以互相访问数据。对于设置userid,就是上文中提到的Android为我们提供的这个属性——”android:shareUserId“,而设置这个属性后,运行apk,需要相应的签名。否则会出现报错,运行失败。这是因为:基于安全考虑,两个apk需要有相同的签名,否则没有验证,应用程序一旦设置了shareuserid,当程序被破解,其它应用也可以访问我们的数据,数据不安全设置共享也就没有多大意义了。

apk之间数据共享,需要注意:相同userid,相同签名,在同一进程中运行,需设置相同的”android:process“(该属性,在application标签中l)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值