错误:
Error running 'app':
The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
解决:
错误信息 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 通常出现在尝试安装的应用使用了与设备上已安装应用不兼容的 sharedUserId 属性。在Android中,sharedUserId 用于允许具有相同用户ID的多个应用共享数据和资源。如果两个应用声明相同的 sharedUserId,它们必须由相同的开发者签名,否则会导致安装失败。
要解决 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 错误,你可以采取以下几种方法:
1. 检查并修改 sharedUserId
如果你的应用不需要与其他应用共享数据或资源,最简单的解决方法是从你的应用的 AndroidManifest.xml 文件中移除 sharedUserId 属性。打开 AndroidManifest.xml 文件,查找 manifest 标签中的 android:sharedUserId 属性,并将其删除:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourapp"
android:sharedUserId="com.example.shareduser">
...
</manifest>
将上面的 android:sharedUserId="com.example.shareduser" 删除后,重新构建并安装你的应用。
2. 确保签名一致
如果你需要保留 sharedUserId(例如,你的应用确实需要与另一个使用相同 sharedUserId 的应用共享数据),则需要确保所有使用相同 sharedUserId 的应用都是用相同的证书签名的。检查你的签名证书,并确保所有相关应用使用相同的证书进行签名。
3. 更改 sharedUserId
如果你的应用需要使用 sharedUserId,但与其他已安装应用的 sharedUserId 发生冲突,且你无法控制其他应用,你可以考虑更改自己应用的 sharedUserId 为一个独特的值,以避免冲突:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourapp"
android:sharedUserId="com.example.youruniqueid">
...
</manifest>
更改后,重新构建并安装你的应用。
4. 卸载冲突应用
如果适用,考虑从测试设备上卸载可能使用相同 sharedUserId 的其他应用,然后重新尝试安装你的应用。这可能不是一个总是可行的解决方案,特别是如果其他应用是用户需要的。