我一直在使用Eclipse开发Android应用程序,最近我迁移到了Android Studio。从Eclipse导出的apk和从Android Studio导出的apk具有不一致的证书,但使用相同的密钥库和别名进行签名。 (如果我尝试安装一个,我得到[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
为了验证证书,我在两个apks(来自this answer)上运行了命令jarsigner -verify -verbose
,输出是相同的,除了时间戳。
我还通过提取并运行META-INF/CERT.RSA
(来自this answer)同样输出来检查每个apk中的openssl pkcs7 -inform des -in CERT.RSA -out decrypted.txt -print_certs -text
。
我尝试将项目迁移两次,一次是将Eclipse项目直接导入Android Studio,一次是从Eclipse导出gradle构建文件并将gradle项目导入Android Studio。两者都产生了相同的结果。
我的应用程序依赖于一个android库,它是Eclipse中的一个独立项目。在Android Studio中,应用程序和库是同一项目中的两个模块。这会影响证书检查吗?
除证书本身外,还有什么可能导致证书错误?
(我在Ubuntu系统上使用Eclipse Luna 4.4.1和ADT 23.0.4,Android Studio 1.0.1和Oracle Java JDK 7。)