前言
如果你安装app时出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
的错误
那么你大概率在manifest
文件中增加了android:sharedUserId="android.uid.system"
,此属性的作用是将普通app提升为系统app(这样就能使用一些系统权限,例如在应用外显示弹窗)
针对此问题,网上大部分讨论的是去除android:sharedUserId
这个属性,但是如果你的目的就是想使用此属性,并且能安装上去,那么请尝试下面的解决方法。
注意:使用android:sharedUserId
的同时,还需要android系统的key
,不同的系统的key
都是不一样的,一般只提供给专门的开发人员,即使你能百度到一个,也无法在其他android设备上使用。所以如果你想在Android Studio自带的模拟器或者自己手机上使用此属性,请放弃。
1. 对android设备进行root
首先考虑app是否有root权限,运行adb root
和adb remount
命令,某些情况下运行adb remount
后还要重启android系统root才能生效。
2. 卸载旧app再运行
尝试卸载旧的app,然后重新运行程序,大概率就能正常运行。如果定制的android系统上卸载功能找不到,可以使用adb uninstall
的形式来卸载。
3. 手动放置apk
如果你的app已经是系统应用,且无法直接卸载,考虑去系统路径下(例如:system/app/
)找到自己的应用,然后通过替换安装包的形式来完成安装(替换完成后需要重新系统才能生效)。
注意:有些系统应用被错误删除后可能会影响正常使用,例如:Launcher
或SystemUI
,所以更改系统apk时建议先对旧的安装包进行备份,使用adb pull <手机文件路径> <本机路径>
的命令可以将android中的文件保存到电脑上。
来源地址:https://blog.csdn.net/Guan_li_peng/article/details/127428653