Android ERROR:INSTALL_FAILED_UID_CHANGED

本文主要探讨Install_failed_uid_changed 这个错误出现的成因和解决方法

成因

从ERROR的名字可知这个错误是因为两次安装的APK的UID发生冲突所引起的,但究竟是为何UID会发生冲突呢?

在Google+上有这样一段分享:连接:https://plus.google.com/wm/1/+MikeBibik/posts/8wdfiUwi7Cx

In Android, the part of the source code that handles installing apps is PackageManagerService.  Since the Android source is public, it’s easy to see where Android will throw a INSTALL_FAILED_UID_CHANGED error.  If the following is true:   the package you are installing already has a data directory AND the permissions on that data directory are different than the UID assigned to this package, ERROR’D!

翻译过来就是,如果待安装的App的数据包已经存在在手机里,且待安装的app要求的权限和已分配到该数据包的UID不同,就会报INSTALL_FAILED_UID_CHANGED ERROR。

也就是说,当APP的权限发生改变时,就会出现APK的UID冲突么?(这显然是不对的。)那到底是为什么会出现前后两次UID不同的情况?UID的分配机制又是如何?

下面是相关资料,目前博主也还没弄明白具体原因,之后会再更新

http://www.docin.com/p-617287614.html

http://blog.csdn.net/jinzhuojun/article/details/25542011

解决方法

1.卸载掉出现问题的App,再重新安装

2.如果1不能解决问题,则手动删除app的数据包,(手机需要root权限)

step1:用文件浏览器(推荐用RE)访问删除data/data/目录,找到报错app的包名,并把整个包删除。

step2:删除data/local/temp/目录下的出错的app.apk

step3:重启手机,

step4:重新安装apk 

3.第二种方法会删除掉app原先的数据,如果想保留数据,使用adb shell,更改UID: chown -R UID:UID /data/data/<application package name> 这个也需要root权限(这个还没试过)

注:如果手机未取得root,需先取得root,或者有一种较极端的方法是将手机恢复出厂设置,再转到step4

编程类问题都可以在stack overflow上面找,大多数问题都已经有解决方法,还可以练练英文



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值