zoukankan      html  css  js  c++  java
  • 彻底解决INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误、安装包与之前设备上的安装包签名不一致

    有时候开发的问题:会遇到在公司上班的时候,公司的IDE能跑程序,把程序拷贝回家,再跑一次,就会出现以下错误:

    INSTALL_FAILED_UPDATE_INCOMPATIBLE

    原因:就是你的安装包与之前设备上的安装包签名不一致。百度的时候,有的人说:运行太多次也会出现上述的问题,但我没遇到过。

    简单处理

    如果你的程序只是自己跑着玩的,不是很重要的程序,那么你就改个包名就好了。之前,我都是这样处理的。

    步骤:如图:

    但是实际工作中,是不允许我们改包名,比如关联到了微信,支付宝,百度地图等,我们的包名是有提交到他们的官网上的。

    那么怎么办呢?

    提供一个比较坑的方法:如果是测试手机,那么格式化测试手机就好了。

    以下是比较完整的一次排查过程:

    问题:调试的时候,用的是默认签名的方式(即debug签名),导出的时候,用的是自己的debug签名,在同一台手机上安装不上。

    解决过程:

    如果你以前的程序是采用默认签名的方式(即debug签名),一旦换了新的签名应用将不能覆盖安装,必须将原先的程序卸载掉,才能安装上。

    ------> 别人都是卸载之后就可以安装上了,但是我的手机不行。

    ------> 我 :卸载了旧的,也root,删掉了data/data/包名。

    ------> 安装提示:替换应用,销售小助手1.0替换为1.0..提示程序未安装。

    ------> 是不是 系统 保存了相关的 包名和签名信息 ? 

    ------> 是的话,也百度不到这个信息放哪里了。

    继续百度:发现包名信息存放在 /data/system/packages.xml 中,需要root手机才可以从手机上看到这个文件。

    ------> 我们删除该应用包含的包名信息就好了。

    步骤:

    1. 采用 "adb uninstall 包名"  卸载之前的安装包,然后试一下是否能安装,不行再执行下一步。 --- 正常,执行这步就能解决问题

    2. 在 /data/system/packages.xml 文件中删除该应用包含的包名信息就好了

       2.1 我的做法:root手机,我的是魅族,直接可以root。之后安装RE管理器,进入/data/system/packages.xml把该文件复制到其他地方,共享到电脑,电脑上修改后,在覆盖原文件。

       参考做法:我的手机不行。 -- 都要root手机

       2.2 使用adb pull命令将这个文件导出,修改完,并用 adb push导入。

       2.3 上述步骤不行,先adb remount (意思是 重新挂载系统分区)再adb pull命令将这个文件导出,修改完,并用 adb push导入。

       2.4 上述步骤不行,

             ---> 执行  adb shell  命令  -- 执行的是Linux的命令

             ---> su (手机应该会弹出权限信息提示~~告诉你需要管理权限,并确认)  -- 获得超级权限

             ---> ls -l (查看当前目录下所有可见文件的详细属性)  drwxrwx--x   (d--文件夹)

                    

                   这边怎么跑出一个system?回答:没有听说过Android除了Root还有system权限  你说的是user权限吧

                   参考:http://bbs.csdn.net/topics/360175988

             ---> mount -o remount,rw /data (重新将文件夹为可读可写。)  我的手机出现( Operation not permitted),没办法下一步

             ---> chmod 777 /data 

             或者参考别人的做法:http://blog.sina.com.cn/s/blog_4ba5b45e0102ek4k.html 

       2.5 在不行,使用2.1方法。

    3. 重新安装新的应用即可

    参考:http://blog.csdn.net/philofly/article/details/8090210

  • 相关阅读:
    台式机+笔记本的扩展模式+远程登录设置
    Hadoop 集群搭建以及脚本撰写
    Python 入门学习(三)
    1056 Mice and Rice
    1057 Stack
    1058 A+B in Hogwarts
    1059 Prime Factors
    使用熔断器仪表盘监控
    使用熔断器防止服务雪崩
    创建服务消费者(Feign)
  • 原文地址:https://www.cnblogs.com/H-BolinBlog/p/5402652.html
Copyright © 2011-2022 走看看