本文主要是介绍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上面找,大多数问题都已经有解决方法,还可以练练英文
这篇关于Android ERROR:INSTALL_FAILED_UID_CHANGED的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!