出现"已安装了存在签名冲突的同名数据包"的原因及解决办法
如果你在android上更新⼀个已经安装过较早版本软件时,安装到最后⼀步提⽰你:已安装了存在签名冲突的同名数据包,然后安装失败。
这是因为旧版软件的签名信息与新版不⼀致造成的。你可以卸载这个软件,然后安装新版软件。
如果⽆法卸载,可能⼿机(pad)在发售前将该软件内置在⼿机中⽆法卸载。如果是这个原因的话,你可以尝试“root”系统,然后卸载掉
该软件的旧版本,然后安装。
如果你是⼀个开发⼈员,那么出现这个问题可能是因为,较旧的版本你是使⽤eclipse⾃动发布到模拟器上的,⽽eclipse⾃动发布时使⽤的
是⼀个测试⽤签名,这个签名与你正式打包的签名不是⼀个。(这个问题⼀般发⽣在测试⾃动更新功能上,嘿嘿)。想继续测试⾃动更新,
解决的办法也很简单,⼿⼯删除该软件的旧版(eclipse⾃动安装的那个),然后使⽤adb⼯具安装旧版再测试新版就好。⾃动更新的安装代
码⼀般是这样:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + String()),
"application/vnd.android.package-archive");
mContext.startActivity(i);
或许你和这略有不同,不⽤担⼼,没什么,问题不在这⾥。
下⾯是给外国朋友的,请原谅我蹩脚的英语:
for foreigner,please forgive my broken:
When you try install a new version of a software on android, maybe you will receive this message: an existing package by the
I take it easy! Uninstall old version soft, and then install new version. In this process , maybe you need get "root" popedom.
If you are developer, you receive this message maybe because the old version is install by the eclipse. Eclipse use a debug keys
Autoupdate function code always like this:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file://" + String()),
"application/vnd.android.package-archive");
mContext.startActivity(i);
If you code not like this , dont worry , never mind, the question not in there.
:)
发布评论