生成的apk在gradle插件更新后未签名



所以,在我将android gradle插件更新到3.6版本之前,我的项目一直做得很好。现在,当我在Android Studio中通过"生成签名的apk"生成发布apk,或者在我们的CI上构建发布apk时,它会生成一个未签名的apk。我使用jre的"jarsigner"工具来验证它(jarsigner--verify--certs D:\app-release.apk(,它告诉我"jar未签名"。我的构建中有一个签名配置。gradle:

signingConfigs {
release {
storeFile file(signing.keyPathRetail)
storePassword signing.storePasswordRetail
keyAlias signing.keyAliasRetail
keyPassword signing.keyPasswordRetail
}
}

密钥库的位置和所有密码都是正确的。密钥库本身已经好几年没有改变了。当我将com.android.tools.build:gradle依赖关系恢复到3.4.2版本时,同样的项目正在生成一个有效的签名apk。

我发现,如果我在7-zip中打开生成的apk,它在META-INF文件夹中缺少文件"CERT.RSA"one_answers"CERT.SF"(使用3.4.2 gradle插件版本生成的apk有它们(,但我不知道为什么。

立即开始:构建-生成签名的APK-选择密钥库和密钥,您就可以上路了。

它对我有效。

尝试以下步骤:-

在Android Studio转到文件>项目结构并从"使用嵌入式JDK"中取消勾选,然后单击确定

转到"计算机设置"(系统设置((win+暂停键(,然后转到"高级系统设置">"环境变量"。如果JAVA_HOME不存在,则添加它并设置已安装JDK的路径。如果您找不到修改JDK路径的直接方法,请执行以下操作(针对最后一步(,但请确保在此之前进行备份。

为了确保你在项目视图中的指导位置,请从根目录中删除".grade"、".inidea"、"capture"、"gradle"文件夹,并从"app"中删除"build"、"release"one_answers"lib"文件夹,保留"src"。删除root.iml,不要删除app.iml文件。然后重建项目,然后创建签名包

最新更新