我想将我的应用程序发布到GooglePlay,但首先我想对签名的apk进行最后一次测试,以确保所有使用过的API密钥都能正常使用发布版本(GMaps,Facebook等)
所以我用我们的发布密钥制作了我的应用程序的签名版本,当我尝试将应用程序安装到设备时,我收到了一个错误:
我试图将apk复制到设备并使用apk安装程序应用程序安装它.
奇怪的是,当我使用调试签名密钥执行相同的过程时,一切都很好,我可以安装并运行应用程序.
以下是该过程的步骤:
我选择了释放键,输入密码.
我选择发布版本类型而不是调试
以防我在gradle文件中定义了签名密钥,但我必须承认我不知道是否有必要.
我现在尝试了7次7次,所以我认为这个问题不只是输入错误的密码,我也可以使用标准的调试android签名密钥.
如果可以的话请帮忙.
您可能正在使用Android 5.0或更高版本的设备.
只需转到设置 - >应用程序 - >单击您的应用程序.--->在操作栏菜单的应用程序信息页面中,将有一个名为"为所有用户卸载"的选项单击该选项.您的应用将完全卸载,现在您可以尝试安装新版本,没有任何问题.希望对你有帮助
从下面链接检查我的解决方案.
链接1
希望它会对你有所帮助.
对于当前Updated Android Studio 2.3
用户来说,这个答案适合你,因为现在很难有人使用eclipse进行Android开发,因为Android工作室有很大的进步.
因此,请按照这种方式创建您的Signed apk
文件.
Build
>生成Signed apk
.
创造Keystore path
.
放Password, alias, key password
.
Build type
相应地选择(例如在playstore使用中释放release
).
Signature Version
选择两个V1
和V2
复选框.
Finsih
.
转到explorer
您为apk选择存储的位置,您将看到您的.apk
文件名app-release.apk
使用它.
选择签名版本v1和v2都解决了我的问题....试试吧
同样的事情发生在我身上,只要我从Build> Build APK生成我的apk.我可以安装和卸载apk,因为它们没有任何问题,但是如果我生成Build> Generate Signed APK,当我将apk传递给手机并尝试安装它时,它只允许我一个场合,出现以下信息的同一个:
如果我选择"以任何方式安装",那么一切都很好,但是如果我卸载了应用并想重新安装它(可能的情况)会发生什么,发生了以下情况:
所以我通过禁用播放保护解决了这个问题,我实现了(在Google Play中)>菜单>播放保护>搜索安全威胁(禁用).
"应用未安装"显示具有相同包的应用已安装在同一设备中.只需删除您用于测试目的的第一个应用程序,然后再将其设置为签名apk.这会奏效.干杯!
选择签名版本v1和v2将解决此问题
v1计划
可以使用命令行jarsigner工具或直接通过java.security API对JAR文件进行签名.如果JAR文件由jarsigner工具签名,则将对每个文件条目(包括META-INF目录中的非签名相关文件)进行签名.对于在签名的JAR文件中签名的每个文件条目,只要清单中不存在该条目,就会为其创建单独的清单条目.
V2方案
v1签名不保护APK的某些部分,例如ZIP元数据.APK验证程序需要处理大量不受信任(尚未验证)的数据结构,然后丢弃签名未涵盖的数据.这提供了相当大的攻击面.此外,APK验证程序必须解压缩所有压缩条目,消耗更多时间和内存.为了解决这些问题,Android 7.0引入了APK Signature Scheme v2
默认情况下,Android Studio 2.2和Gradle 2.2的Android插件使用APK签名方案v2和使用JAR签名的传统签名方案签署您的应用程序.
建议使用APK签名方案v2,但不是强制性的. 请看详情