我想将我的应用程序发布到GooglePlay,但首先我想对签名的apk进行最后一次测试,以确保所有使用过的API密钥都能正常使用发布版本(GMaps,Facebook等)
所以我刚用我们的发布密钥制作了我的应用程序的签名版本,当我尝试将应用程序安装到设备时,我收到了一个错误:
我试图将apk复制到设备并使用apk安装程序应用程序安装它。
奇怪的是,当我使用调试签名密钥执行相同的过程时,一切都很好,我可以安装并运行应用程序。
以下是该过程的步骤:
我选择了释放键,输入密码。
我选择发布版本类型而不是调试
以防我在gradle文件中定义了签名密钥,但我必须承认我不知道是否有必要。
我现在尝试了7次7次,所以我认为这个问题不只是输入错误的密码,我也可以使用标准的调试android签名密钥。
如果可以的话请帮忙。
您可能正在使用Android 5.0或更高版本的设备。
只需转到设置 - >应用程序 - >单击您的应用程序。 --->在操作栏菜单的应用程序信息页面中,将有一个名为“为所有用户卸载”的选项单击该选项。您的应用将完全卸载,现在您可以尝试安装新版本,没有任何问题。希望对你有帮助
从下面链接检查我的解决方案。
希望它会对你有所帮助。
Go To Build.Gradle(模块:app)
使用这个 - minifyEnabled false
minifyEnabled false
在所有论坛进行了3天的研究之后,这是唯一对我有用的东西!
在Android Studio 3.0及更高版本中
正如描述here
注意:“运行”按钮使用testOnly =“true”构建APK,这意味着APK只能通过adb(Android Studio使用)安装。如果你想要一个可以在没有adb的情况下安装的可调试APK,请选择你的调试版本,然后单击Build Bundle(s)/ APK(s)> Build APK(s)。
在AndroidManifest.xml中的Application标记内添加android:testOnly="false"
参考:https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
这是一个很老的问题,但我的解决方案是在build.gradle中更改versionCode(增加)
这可能是由于您选择了签名版本。在某些手机上,如果签名版本被选为V2,则会出现安装错误。因此,如果发生这种情况,请尝试选择V1,它肯定会起作用。
文件>项目结构>构建变体>选择版本>确保'签名配置'不为空>如果从下拉窗口中选择$signingConfigs.release
我使用Android Studio 3.1.4做了这个,它允许我按照上面创建发布apk和释放键的所有步骤创建一个发布apk,并将信息添加到app gradle。干杯!
对于当前的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
使用它。“应用未安装”显示具有相同包的应用已安装在同一设备中。只需删除您用于测试目的的第一个应用程序,然后再将其设置为签名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,但不是强制性的。 please see the details
我在这里解决了这个问题
这个问题背后的原因是,手机中已有一个具有相同包装名称的应用程序,但您无法在手机菜单中找到它(U已经取消了安装,但实际上它仍在手机中)。
要查看该应用程序,请转到手机设置 - > APPS。在那里你可以看到应用程序,但在其中可以禁用UNINSTALL按钮。单击菜单溢出按钮以查看所有用户的卸载。
为所有用户卸载后,我已经成功安装了我签名的apk。您还可以使用adb从手机中卸载应用。
adb uninstall package name
除此之外,如果您的手机支持多个用户,请检查是否未为其他用户安装相应的应用。如果已为其他人安装,请先卸载以前的应用,然后重试
这可能是因为您从外部SD卡存储运行APK文件。只需将APK文件复制到内部存储问题就可以解决了