当我试图更新我的应用程序与新版本具有相同的签名前一个,显示上述错误。
我错过了什么?
当我试图更新我的应用程序与新版本具有相同的签名前一个,显示上述错误。
我错过了什么?
如果您通过adb install在您的设备上安装应用程序,您应该查找重装选项,该选项应该是-r。因此,如果您执行adb install -r,您应该能够安装之前不卸载。
您会得到这个错误,因为与您的应用程序具有相同包名的应用程序已经存在。如果您确定以前没有安装过相同的应用程序,请更改包名称并尝试。
除此之外,以下是你可以做的:
从设备上卸载应用:进入“设置”-“>管理应用”,选择“卸载” 或 使用adb命令行界面卸载应用:输入adb Uninstall 完成此步骤后,再次尝试安装应用程序。
这可能意味着您的设备上已经为其他用户安装了应用程序。用户共享应用。我不知道他们为什么这么做,但他们确实这么做了。因此,如果一个用户更新,另一个用户的应用程序也会更新。如果你卸载了其中一个,它不会从另一个系统中删除应用程序。
安装
adb install -r exampleApp.apk
(-r使其替换现有的副本,如果安装在模拟器上,则添加-s)
确保应用程序的签名相同,并且是相同的调试/发布变体
奖金
我在~/中设置了一个别名。Bash_profile,使其成为一个2char命令。
alias bi="gradlew && adb install -r exampleApp.apk"
(Build and Install的简称)
如果你仍然面临问题,然后尝试使用命令提示卸载应用程序。 只需添加命令adb uninstall com.example.yourpackagename 然后尝试重新安装。它的工作原理!
在我的Android 5平板电脑上,每次我尝试使用adb来安装已签名的apk时,我都会得到[INSTALL_FAILED_ALREADY_EXISTS]错误。
我必须先卸载调试包。但是,我无法使用设备的应用程序管理器卸载!
如果要用应用程序管理器卸载调试版本,那么我必须从Android Studio重新运行调试版本,然后使用adb uninstall com.example.mypackagename卸载它
最后,我可以使用adb install myApp.apk来安装签名发布的apk。
如果应用程序是在不同的pc上构建的,也会导致这种情况。如果复制调试,可以使整个团队的工作更轻松。从别人的机器的keystore到你的项目顶部的/cert文件夹,然后添加一个signingConfigs部分到你的app/build.gradle:
signingConfigs {
debug {
storeFile file("cert/debug.keystore")
}
}
然后告诉调试版本如何为应用程序签名:
buildTypes {
debug {
// Other values
signingConfig signingConfigs.debug
}
}
将该文件签入源代码控制。这将允许整个开发团队无缝安装/升级过程,并使您的项目能够适应未来的机器升级。