华为手机提示更新包与已安装应用的签名不一致 | 您所在的位置:网站首页 › 华为系统升级安装包怎么删除不了 › 华为手机提示更新包与已安装应用的签名不一致 |
华为手机提示更新包与已安装应用的签名不一致
自己尝试解决网上寻找解决方案1、配置adb2、查看APK的包名3、彻底卸载原有应用信息
新的思考
最近使用华为手机(HUAWEI Mate 20)调试程序,发现一个问题。直接使用AndroidStudio安装的时候很顺利,没有出现错误。后来我需要看一下release版的效果,就把之前安装的程序卸载了,手动安装release版的程序,发现安装失败。提示更新包与已安装应用的签名不一致,可是我已经把之前安装的版本卸载了,根本没有已安装的应用啊,而且之前用其他品牌的手机也没遇到过这样的问题啊。 首先我先按照手机给出的处理建议来看一下能不能解决。第一条:卸载当前已安装版本再重装不可行,因为我已经卸载了,没有已安装版本;第二条:说针对Android6.0以上的版本,要到"设置">“应用管理"里面去卸载。我的手机是华为Mate20,在"应用管理"里面根本找不到我这个应用,所以也就没法点击"为所有用户卸载”。两个方法都行不通,我怀疑是不是卸载之后还有缓存,导致安装不上。因此我就试着重启手机试一下,结果还是安装失败。 网上寻找解决方案无奈之下只有上网百度。看能不能找到解决方案。后来果真让我找到一个可行的办法,附上原文链接。原因是应用卸载不彻底,给出的解决方法是利用adb工具进行彻底卸载,删除和原应用相关的东西。 1、配置adbadb是Android SDK自带的一个工具,目录一般为:sdk安装目录>platform-tools>adb.exe.直接在dos下运行adb命令可能会提示’adb’ 不是内部或外部命令,也不是可运行的程序或批处理文件。那是因为我们没有把运行目录设置到adb.exe所在的文件夹,这也是我们为什么一般将adb.exe的路径加到系统的环境变量当中的原因。 可以从AndroidStudio下你的项目的模块级的build.gradle下查看, apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.markton.spacertk" minSdkVersion 19 targetSdkVersion 28 versionCode 10 versionName "1.3.3" multiDexEnabled true } }这里的applicationId就是你的应用包名。 当然,如果你只有一个安装包,怎么知道查看你的包名呢?可以直接在手机上使用腾讯GT调试工具查看。下载地址 例如,我的安装包放在F盘的data目录下,那么就是: aapt dump badging F:\data\SpaceRTK.apk
首先把手机用数据线和电脑相连,同时打开开发人员选项按钮,运行USB调试,然后在cmd下执行卸载命令: adb uninstall apk的包名这里apk的包名就是你的应用的APK的包名。出现提示Success即说明卸载成功。 安装成功之后,我又卸载了,然后重新安装release版本,此时也可以安装成功。说明只要签名对的上,就是上次没有卸载干净也没有关系。 然后我又试着用AndroidStudio直接安装,这时候安装的是debug版本的,当然,由于debug版和release版的签名不同,AS会提示你要卸载已安装的版本。卸载之后发现竟然直接安装成功,都不需要像之前一样用adb清除卸载残余。 第一次写博客,花了挺长时间,希望能够给遇到类似问题的朋友一点帮助。 参考博客: 安卓APP应用签名不一致无法安装的解决方案 adb与aapt获取安卓手机app的versionCode |
CopyRight 2018-2019 实验室设备网 版权所有 |