当我试图更新我的应用程序与新版本具有相同的签名前一个,显示上述错误。

我错过了什么?


当前回答

安装

adb install -r exampleApp.apk

(-r使其替换现有的副本,如果安装在模拟器上,则添加-s)

确保应用程序的签名相同,并且是相同的调试/发布变体

奖金

我在~/中设置了一个别名。Bash_profile,使其成为一个2char命令。

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

(Build and Install的简称)

其他回答

如果应用程序是在不同的pc上构建的,也会导致这种情况。如果复制调试,可以使整个团队的工作更轻松。从别人的机器的keystore到你的项目顶部的/cert文件夹,然后添加一个signingConfigs部分到你的app/build.gradle:

  signingConfigs {
    debug {
      storeFile file("cert/debug.keystore")
    }
  }

然后告诉调试版本如何为应用程序签名:

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

将该文件签入源代码控制。这将允许整个开发团队无缝安装/升级过程,并使您的项目能够适应未来的机器升级。

这可能意味着您的设备上已经为其他用户安装了应用程序。用户共享应用。我不知道他们为什么这么做,但他们确实这么做了。因此,如果一个用户更新,另一个用户的应用程序也会更新。如果你卸载了其中一个,它不会从另一个系统中删除应用程序。

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

除此之外,以下是你可以做的:

从设备上卸载应用:进入“设置”-“>管理应用”,选择“卸载” 或 使用adb命令行界面卸载应用:输入adb Uninstall 完成此步骤后,再次尝试安装应用程序。

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

在我的Android 5平板电脑上,每次我尝试使用adb来安装已签名的apk时,我都会得到[INSTALL_FAILED_ALREADY_EXISTS]错误。

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

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

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