Flutter编译报错:PackageAndroidArtifact$IncrementalSplitterRunnable执行失败
解决Flutter调试模式下
:app:packageDebug失败的HmacPBESHA256算法问题 这个错误核心是Java环境无法识别HmacPBESHA256算法,大概率和JDK版本、debug密钥库或安全配置有关,试试以下几个方案:
1. 核对并升级JDK版本
HmacPBESHA256是较新的加密算法,部分老旧JDK版本(比如JDK 8早期子版本)不支持该算法。
- 打开终端执行
java -version,确认使用的是**Oracle JDK 8u161+**或OpenJDK 11及以上版本(优先匹配Flutter官方推荐的JDK版本)。 - 如果版本不兼容,下载安装对应版本的JDK,更新系统环境变量
JAVA_HOME指向新JDK的安装路径,重启IDE后重试。
2. 重新生成debug.keystore
原debug密钥库可能因损坏或生成时使用了不兼容算法导致读取失败:
- 先备份原文件:复制
C:\Users\Home\.android\debug.keystore到其他安全位置。 - 删除原
debug.keystore文件。 - 打开终端,切换到
.android目录:cd C:\Users\Home\.android - 执行以下命令重新生成调试密钥库:
keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 - 生成完成后重启Flutter项目,执行
flutter run调试。
3. 检查Java安全策略配置
部分场景下Java安全策略会限制特定算法的使用:
- 找到JDK安装目录下的安全配置文件:
- JDK 8路径:
JDK安装目录/jre/lib/security/java.security - JDK 11+路径:
JDK安装目录/lib/security/java.security
- JDK 8路径:
- 打开文件,查找
jdk.tls.disabledAlgorithms条目,确保其中没有HmacPBESHA256,如果有则删除该算法后保存文件。 - 重启IDE和Flutter项目重试。
4. 清理缓存并重新构建
缓存残留可能导致配置冲突:
- 执行Flutter清理命令:
flutter clean - 切换到项目的
android目录,执行Gradle清理:gradlew clean - 重新执行
flutter run启动调试。
内容的提问来源于stack exchange,提问作者DarkChoco
相关产品推荐
相关产品推荐

