android自动化,打包后安装报错签名不对

uiautomator2 自动化框架,用java写了一个自动化脚本,但是打包apk之后,安装时候报签名问题
尝试了自己加个签名,但是依然报这个错

img


详细报错:
Installation failed due to: 'Failed to commit install session 1723065829 with command cmd package install-commit 1723065829. Error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.xiaofei.uiauto-1: Package com.xiaofei.uiauto has no signatures that match those in shared user android.uid.system; ignoring!'

安装生成签名

img

希望各位能够帮忙解决这个问题

望采纳!!!!

从 Androif.xml Manifest 中删除 android:sharedUserId=“android.uid.system”

系统uid这个是在系统签名里面的,你没有系统签名,所以会出现这个错误。

解决方案,第一,去掉system uid但是就失去了系统权限相关内容,第二个就是找到系统签名key,重签就可以。

第三个方案,如果有源码了,可以把自己的这个签名加入系统签名中去,这个也是三方rom常做的动作。

望采纳!!!点击回答右侧采纳即可!!可能是因为你打包的应用程序没有使用相同的签名证书进行签名,而手机上已经安装了一个具有相同包名但不具有相同签名证书的应用程序。

对于一个APK来说,如果要使用某个共享UID的话,必须做三步:

1、在Manifest节点中增加android:sharedUserId属性。

2、在Android.mk中增加LOCAL_CERTIFICATE的定义。

如果增加了上面的属性但没有定义与之对应的LOCAL_CERTIFICATE的话,APK是安装不上去的。提示错误是:Package com.test.MyTest has no signatures that match those in shared user android.uid.system; ignoring!也就是说,仅有相同签名和相同sharedUserID标签的两个应用程序签名都会被分配相同的用户ID。例如所有和media/download相关的APK都使用android.media作为sharedUserId的话,那么它们必须有相同的签名media。

3、把APK的源码放到packages/apps/目录下,用mm进行编译。