使用共享用户ID时INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

时间:2013-03-04 15:33:48

标签: android

我正在研究将共享数据库的android应用程序。因为我在两个应用程序的清单文件中使用android:sharedUserId。当我在添加sharedUserId后尝试运行应用程序时,它会在控制台中显示以下错误。

[2013-03-04 19:37:32 - MainActivity] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
[2013-03-04 19:37:32 - MainActivity] Please check logcat output for more details.
[2013-03-04 19:37:32 - MainActivity] Launch canceled!

请帮我解决这个问题。

10 个答案:

答案 0 :(得分:26)

我按照以下步骤操作:

  1. 删除现有应用程序(如果已安装)
  2. 从Android清单
  3. 中删除了共享用户ID
  4. 提交申请表。
  5. 现在再次输入共享用户ID
  6. 再次构建应用程序

答案 1 :(得分:3)

在我的情况下,这两个应用程序签署了不同的签名。使用相同的签名修复我的问题

答案 2 :(得分:2)

这意味着您的应用未正确卸载。此步骤有助于从内部命令强制卸载:

  1. 使用usb将手机连接到PC
  2. 从你的shell发布:
  3.     $ adb shell
        shell@android:/ $ su
        shell@android:/ # pm list packages | grep <part of package>
        package:com.android.providers.applications
        package:com.android.providers.calendar
        package:com.android.providers.contacts
        package:com.android.providers.downloads
        ...
        shell@android:/ # pm uninstall <package>
        shell@android:/ # exit
        shell@android:/ $ exit
        $
    

    基本上,你登录到android shell,成为超级用户,找到有问题的包,并将其卸载

答案 3 :(得分:1)

对我来说,解决方案是选择“构建>清理项目”菜单选项。花了很长时间,但应用程序完成后就部署了。

答案 4 :(得分:1)

我正在使用仿真器,而对我来说,解决方案是选择“ AVD管理器”并从仿真器设备中擦除所有数据。安装该应用程序之后。

答案 5 :(得分:0)

在我的情况下,我有两个构建变体(一个特定于设备,一个普通)。

当出现此错误时,我在模拟器上运行特定于设备的构建。

答案 6 :(得分:0)

虽然你已经接受了答案,但我也想谈谈我遇到这个错误的情况。我的项目是一个Launcher,恰好使用了一些系统授权,Manifest.xml有两个项目:

<uses-permission android:name="android.permission.STATUS_BAR" />
 or
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

和控制台注销:

Error using StatusBarManagerService - java.lang.SecurityException on android.permission.STATUS_BAR

最后,我的同事给我提示使用&#34;平台调试密钥&#34;,我不确定这是否适合你,但对于其他人来说这个问题的可能性。 下图是我的解决方案: screenshot from project structure 您可能还会注意到“签名配置”#39; &#34; Flavors&#34;和#34;构建类型&#34;,您可以选择&#39;名称:&#39; &#34;签署&#34;。

答案 7 :(得分:0)

我做了一个稍微不同的方法。

我的工作涉及使用经过修改的Android操作系统以及修改过的adb工具。我正在开发的应用程序(app1)&#34;共享用户&#34;与另一个团队的另一个应用程序(app2)。为了让Android Studio调试器工作,我必须按顺序执行以下步骤:

  1. 使用Build(来自Android Studio菜单) - &gt;生成签名APK
  2. 使用(app1和app2)使用的密钥库信息构建apk(app1)的调试版本
  3. 使用adb卸载以前的apk
  4. 使用adb安装签名的debug-apk
  5. 使用adb以调试模式启动应用
  6. 将Android Studio调试程序连接到应用程序

答案 8 :(得分:0)

我遇到了同样的问题。我尝试了所有方法,但不幸的是,没有任何方法适合我。由于它是一种测试设备,因此可以毫不犹豫地恢复出厂设置。哎呀。很烂也没有用。 Invalidate Cache / Restart (无效的缓存/重新启动)最终成功了。看来这是Android Studio 3.5的错误。

谢谢。

答案 9 :(得分:0)

只需从移动设备中删除现有应用程序,然后使用run重新安装。