Android 签名(7)签名常见问题,debug签名和release签名的区别等
一般在安装时提示出错:INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
1) 两个应用,名字相同,签名不同
2) 升级时前一版本签名,后一版本没签名
3) 升级时前一版本为DEBUG签名,后一个为自定义签名
4) 升级时前一版本为Android源码中的签
1 查看默认签名
不同的机子上或不同的设备上,利用eclipse编译出的apk签名是不一样的。eclipse都有一个默认的签名。查看签名路径:
1)打开Eclipse->Preferences->Andorid->Build,在这个Build界面,找到Default debug keysore这个编辑框,里面的值则为本台设备中Eclipse的keystore的默认路径。
2)如果出现因签名不同而导致应用程序未安装,可以将原先的keystore替换掉当前设备上的keystore。并重新启动Eclipse。否则只能完全卸载掉移动设备上的apk,重新安装了。
2 无法覆盖安装
1)、通过签名的方式生成你的APK,而不是直接从Bin目录底下去拷贝,每个Android可执行程序的APK都有自己的签名,只要签名一致,就可以覆盖安装,而不需要卸载;
2)、数据库表结构的变化(增加一个字段,减少一个字段,新表的建立)。正常升级数据库的方法 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
3)、sharepreferences的数据有改变,这个跟数据库差不多,比如原来的sharepreferences保存的一数据是boolean,在后一版本把保存的数据改为string,问题就出现了。
3 导出签名
1)打开cmd控制台,输入命令:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore,按照提示依次填写内容,并记住密码,后面会用到;
2)生成好keystore后,就可以导出签名apk了。Eclipse中,右击需要签名的工程android tools->export signed application package,location为生成的keystore所在的位置,密码为创建keystore时设置的密码,然后按照提示,next,最后finish,成功导出签名apk。
详见:http://blog.csdn.net/yiwanxinyuefml/article/details/6765129
4 debug签名和release签名的区别
1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;Debug模式下签名用的证书(默认是Eclipse/ADT和Ant编译)自从它创建之日起,1年后就会失效。
2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题,相当于软件不具备升级功能!
最新文章
- npm常用命令
- 用margin还是padding
- hdu2896 病毒侵袭 ac自动机
- nrf51822裸机教程-UART
- 008. asp.net mvc3.0安装文件及其安装时发生错误的解决方案
- HTML第七天学习笔记
- hdu 4598 差分约束
- 文成小盆友python-num11-(2) python操作Memcache Redis
- RDCの自我介绍
- jquery获得表格可见行的大小数量
- bootstrap 栅格系统 自动隐藏
- 使用npm 下载 cnpm
- Appium+python自动化获取toast消息的方法
- @Slf4j注解实现日志输出
- MT【273】2014新课标压轴题之$\ln2$的估计
- bootstrap和easyui
- C#Winform的DEV下拉下拉控件介绍
- EXP-00056: ORACLE error 12154 encountered
- E - Cup
- [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本
热门文章
- position containing block原点
- DTCMS自定义标签,tags分割
- Visual Studio 2015和.Net 2015 预览版在线安装和ISO镜像安装光盘下载
- ACE_linux:Reactor与Proactor两种模式的区别
- Python urllib2 模块学习笔记
- python开源项目及示例代码
- ThinkPHP I方法
- Delphi XE5 android 获取电池电量
- 字符串截取 方法 String b=a.substring(0, a.indexOf(";乘坐";));
- mysql分表与分区表