构建 APK 时出错:算法 HmacPBESHA256 不可用

Posted

技术标签:

【中文标题】构建 APK 时出错:算法 HmacPBESHA256 不可用【英文标题】:Errors while building APK: Algorithm HmacPBESHA256 not available 【发布时间】:2021-07-29 22:31:16 【问题描述】:

我正在尝试更新现有的 android 应用,但在生成签名 APK 时出现以下错误消息:Algorithm HmacPBESHA256 not available

我已经在 Internet 上搜索了解决方案,包括 *** 上的解决方案,但我在任何地方都找不到。我知道当前的密钥库使用 SHA1withRSA,但我不知道如何将其转换为 HmacPBESHA256。很遗憾,Google Play 支持也帮不了我,因为这个问题太技术性了。

为了清楚起见,这里是完整的通知:

任务“:app:packageRelease”执行失败。 执行 com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable 时发生故障 com.android.ide.common.signing.KeytoolException:无法从存储“/Users/KDApps/Documents/KDApps/original-signing-keystore.jks”读取密钥1:完整性检查失败:java.security.NoSuchAlgorithmException:算法HmacPBESHA256不可用

【问题讨论】:

这是Java中找不到加密算法的问题。在Java 12 中添加了它的支持。见类似讨论:***.com/a/59625191/13482100 @Kuzneц 我正在使用 Java 16,但仍然出现此错误。我还有什么遗漏吗? 有几个地方用到了java。我从设置 JAVA_HOME 指向 JDK 16 开始,并尝试使用 JDK16/bin/keytool。如果它开箱即用 - 我会仔细检查用于运行 Gradle 的 JVM。默认情况下,Android Studio 使用自己的 JDK11 发行版来运行 gradle 进程。检查此讨论:***.com/questions/19608742/… 这对我来说很好用 :) https://***.com/a/69697914/5958045 这对我来说很好用 :) https://***.com/a/69697914/5958045 【参考方案1】:

确保已安装 JDK。

File -> Project Structure -> SDK Location -> Gradle Settings -> change the gradle JDK to the correct one.

【讨论】:

【参考方案2】:

由于缺少Java环境变量或Android jdk与已设置的Java环境变量版本不匹配而出现此问题。解决这个设置 jdk 到环境变量版本。

【讨论】:

这对我有用。我将 JAVA_HOME 值设置为等于 Java 11 JDK 并设置 gradle 以使用相同的 JDK 来编译项目。【参考方案3】:

我也经历过同样的事情,但是当我将 JDK 更改为 16 时,它设法调试enter image description here

更改我的 jdk 时它起作用了

enter image description here

【讨论】:

【参考方案4】:

我在不同的 SO 答案之后尝试了很多事情,但最后这对我有用

我删除了我最初拥有的 JDK v11(因为根据我的阅读,11 没有加密算法),安装 v16,然后通过以下方式更新 gradle 使用的 JAVA 版本:

首选项 > 构建、执行和部署 > 构建工具 > Gradle

然后选择 Gradle SDK 到 v16

【讨论】:

【参考方案5】:

Android Studio

第一个: 升级您的 Gradle 插件版本 为此,您必须下载 gradle 版本。 您可以获取版本 7.0.2 https://downloads.gradle-dn.com/distributions/gradle-7.0.2-bin.zip 然后在 android studio 中升级。 当您再次打开 android studio 时,您应该会收到一个弹出通知以完成 gradle 升级。 重启安卓工作室

第二个: 在项目根目录内打开, “文件”->“设置”->“构建、执行、部署”->“构建工具”->“gradle” 然后更新 Gradle 用户主页 到您新下载的 gradle 位置。 就我而言,我将下载保存在这里 - C:/Program Files/Android/gradle-7.0.2 重启安卓工作室

【讨论】:

【参考方案6】:

我通过输入解决了这个问题 “文件”->“设置”->“构建、执行、部署”->“构建工具”->“Gradle” 并选择合适的“Gradle JDK”版本。

【讨论】:

以上是关于构建 APK 时出错:算法 HmacPBESHA256 不可用的主要内容,如果未能解决你的问题,请参考以下文章

生成签名的 APK:构建 APK Android Studio 时出错

从 Flutter 项目构建 APK 时出错

我将构建签名的 apk 时出错

在 Android Studio 中构建 APK 文件时出错

Android - 使用 apktool 将项目构建为 APK 文件时出错

Chromium - 在 Android Studio 中构建 Chome_public_apk 时出错