Android 尝试更新应用程序时失败[安装失败\u已\u存在]

Android 尝试更新应用程序时失败[安装失败\u已\u存在],android,installation,Android,Installation,当我试图用和前一个签名相同的新版本更新我的应用程序时,显示了上面的错误 我缺少什么?如果您通过adb install在设备上安装应用程序,您应该寻找重新安装选项,该选项应为-r。因此,如果您执行了adb安装-r,您应该能够在不卸载之前进行安装。您会收到该错误,因为已经存在与您的应用程序包名相同的应用程序。如果您确定以前没有安装过相同的应用程序,请更改程序包名称并重试 否则,以下是您可以做的: 从设备卸载应用程序:转到设置->管理应用程序,然后选择卸载 或 使用adb命令行界面卸载应用程序:键入a

当我试图用和前一个签名相同的新版本更新我的应用程序时,显示了上面的错误


我缺少什么?

如果您通过
adb install
在设备上安装应用程序,您应该寻找重新安装选项,该选项应为
-r
。因此,如果您执行了adb安装-r,您应该能够在不卸载之前进行安装。

您会收到该错误,因为已经存在与您的应用程序包名相同的应用程序。如果您确定以前没有安装过相同的应用程序,请更改程序包名称并重试

否则,以下是您可以做的:

  • 从设备卸载应用程序:转到设置->管理应用程序,然后选择卸载 或
  • 使用adb命令行界面卸载应用程序:键入adb Uninstall 完成此步骤后,请再次尝试安装应用程序
    这可能意味着该应用程序已为设备上的其他用户安装。用户共享应用程序。我不知道他们为什么这么做,但他们确实这么做了。因此,如果一个用户更新了应用程序,另一个用户的应用程序也会更新。如果在其中一个上卸载,则在另一个上不会从系统中删除该应用

    安装 (如果安装在仿真器上,则使用
    -r
    替换现有副本,添加
    -s

    确保应用程序的签名相同,并且是相同的
    debug/release
    变体

    奖金 我在
    ~/.bash\u配置文件中设置了一个别名,使其成为2char命令

    alias bi="gradlew && adb install -r exampleApp.apk"
    

    (Build and Install的缩写)

    如果您仍然面临问题,请尝试使用命令提示符卸载应用程序。 只需添加命令
    adb uninstall com.example.yourpackagename

    然后再次尝试重新安装。它可以工作

    在我的安卓5平板电脑上,每当我尝试使用adb来安装签名版apk时,我都会收到
    [安装失败\u已经存在]
    错误

    我必须先卸载调试包。但是,我无法使用设备的应用程序管理器卸载

    如果使用应用程序管理器卸载调试版本,那么我必须从Android Studio重新运行调试构建变量,然后使用
    adb uninstall com.example.mypackagename卸载它


    最后,,我可以使用
    adb install myApp.apk
    来安装已签名版本的apk。

    如果应用程序是从不同的PC上构建的,也可能会造成这种情况。如果您将
    调试.keystore
    从某人的机器复制到项目顶部的
    /cert
    文件夹中,然后添加
    将配置部分签名到您的
    应用程序/build.gradle

      signingConfigs {
        debug {
          storeFile file("cert/debug.keystore")
        }
      }
    
    然后告诉调试生成如何对应用程序进行签名:

      buildTypes {
        debug {
          // Other values 
          signingConfig signingConfigs.debug
        }
      }
    

    将此文件签入源代码管理。这将允许整个开发团队进行无缝的安装/升级过程,并使您的项目对未来的机器升级具有弹性。

    我的应用程序没有出现在菜单或应用程序商店下-但多亏了穆罕默德的提示。这不是一个好的解决方案。如果你在应用程序中保存了一堆像SharedPref这样的状态会怎么样?如果你从系统中硬卸载,你必须重新配置你的应用程序!这就是我需要的解决方案,
    adb卸载我的.package
    。奇怪的是,它没有卸载我想要删除的prefs,但它确实删除了包,这正是阻止我重新安装它的原因。
    adb install-r
    并不总是有效(我从Sprint获得了一个EVO 4G,它拒绝按预期运行)。我发现唯一的解决办法是手动删除应用程序。有时候,我甚至不得不通过手机的用户界面来完成,因为EVO太变化无常了。我来这里是因为我想知道
    adb install-r
    是否会先删除,然后安装或升级我的应用程序。虽然
    adb
    的描述不是很清楚(-r:替换现有应用程序),
    adb安装-r
    确实升级了你的应用程序,并且没有删除你的应用程序数据。因此适合测试升级您的应用程序(这是我一直在寻找的信息)。对于声称
    adb安装-r
    不起作用的人:我猜您尝试安装的
    .apk
    文件与设备上安装的
    .apk
    文件没有使用相同的开发人员证书签名。如果您安装了调试应用程序,然后尝试安装发布应用程序或其他方式,则很容易发生这种情况。如果应用程序未使用同一证书签名,则无法更新该应用程序。如果使用多个帐户,则可能必须从所有帐户卸载(请参阅GregP的答案)。在我这么做之后,这对我起了作用。不起作用,我的应用程序是一个系统应用程序,这并不能解决我的问题:/n这正是我的问题!一直尝试卸载-使用adb和手动卸载,但
    adb安装
    一直失败,即使应用程序在应用程序列表中不再可见。原来它还在我设备上的另一个帐户上。。。谢谢这也帮我修好了。有关要为所有用户取消安装的设备的信息,我必须转到“设置”>“应用程序”,点击应用程序,点击右上角的省略号,然后点击“为所有用户卸载”。
      buildTypes {
        debug {
          // Other values 
          signingConfig signingConfigs.debug
        }
      }