Flutter - Gradle 任务 assembleRelease 失败,退出代码为 1

Posted

技术标签:

【中文标题】Flutter - Gradle 任务 assembleRelease 失败,退出代码为 1【英文标题】:Flutter - Gradle task assembleRelease failed with exit code 1 【发布时间】:2022-01-23 18:37:45 【问题描述】:

我在构建我的颤振应用程序时遇到以下错误。在模拟器上测试应用程序时我没有收到任何错误,并且运行良好。我不知道这栋楼出了什么问题。感谢您提供的任何帮助。

颤振版本:v2.5.3 |开发工具:v2.8.0

我正在使用这个命令来构建应用程序:

flutter build apk --split-per-abi

这是错误日志:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageRelease'.
> Multiple task action failures occurred:
   > A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
      > com.android.ide.common.signing.KeytoolException: Failed to read key upload from store "/Users/USER_NAME/Documents/APP_NAME/main_files/source/wordpress_app/android/app/upload-keystore.jks": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
   > A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
      > com.android.ide.common.signing.KeytoolException: Failed to read key upload from store "/Users/USER_NAME/Documents/APP_NAME/main_files/source/wordpress_app/android/app/upload-keystore.jks": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
   > A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
      > com.android.ide.common.signing.KeytoolException: Failed to read key upload from store "/Users/USER_NAME/Documents/APP_NAME/main_files/source/wordpress_app/android/app/upload-keystore.jks": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 14s
Running Gradle task 'assembleRelease'...                          135.8s
Gradle task assembleRelease failed with exit code 1

【问题讨论】:

你的java是最新的吗?您的上传密钥在预期的位置吗?这就是我首先要检查的内容。 是的,我使用的是最新的 java 版本。而且我的 upload-keystore.jks 文件也在预期的位置。即:/users/MY_USERNAME/upload-keystore.jks 你的钥匙有问题。你是如何产生它的?您的 key.properties 是否正确填写? 我使用以下命令生成它:keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload ..(我的应用程序运行良好在模拟器中——构建时唯一的问题。)我的 key.properties 也正确填充。 密钥用于签署您的发布 APK,这就是为什么您在调试环境中运行时不会出错的原因。也许您会发现此页面对您有所帮助 (docs.flutter.dev/deployment/android) 【参考方案1】:

解决方法如下:

试试这个命令:

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -storetype JKS

带有额外属性

-storetype JKS

注意:只有 Java 9 或更新版本需要 -storetype JKS 标记。从 Java 9 版本开始,密钥库类型默认为 PKS12。

参考:Error building AAB - Flutter (Android) - Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

【讨论】:

以上是关于Flutter - Gradle 任务 assembleRelease 失败,退出代码为 1的主要内容,如果未能解决你的问题,请参考以下文章

Flutter App 卡在“正在运行 Gradle 任务 'assembleDebug'……”

异常:Gradle 任务 assembleDebug 失败,退出代码为 1-FLUTTER

Flutter 错误 - Gradle 任务 assembleDebug 失败,退出代码为 -1

Flutter - Gradle 任务 assembleRelease 失败,退出代码为 1

Flutter Gradle 任务 assembleDebug 失败,退出代码为 1

Flutter Android - Gradle 任务 bundleRelease 失败,退出代码为 1