当前位置: 首页 > 知识库问答 >
问题:

构建AAB时出错-颤振(Android)-完整性检查失败:java。安全NoSuchAlgorithmException:算法HmacPBESHA256不可用

吕德业
2023-03-14

我正在尝试为我的Flitter应用程序构建一个AAB。我使用以下命令生成密钥库:

keytool -genkey -v -keystore ~/pc-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias pckey

我有一把钥匙。属性文件,我已经使用颤振文档中提供的代码引用了它。如何解决这个与Java相关的问题?我的程序引发以下异常

* What went wrong:                                                      
Execution failed for task ':app:signReleaseBundle'.                     
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Failed to read key pckey from store "/Users/jrperfetto/pc-keystore.jks": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available
                                                   

共有3个答案

彭硕
2023-03-14

注意:keytool命令可能不在您的路径中,它是作为Android Studio的一部分安装的Java的一部分。对于具体路径,运行flatter doctor-v并找到打印在“Java二进制地址:”之后的路径。然后使用该完全限定的路径将java(最后)替换为keytool。如果路径包含以空格分隔的名称,如程序文件,请对名称使用适合平台的符号。例如,在Mac/Linux上使用程序\文件,在Windows上使用“程序文件”。只有Java 9或更新版本才需要-storetype JKS标记。从Java 9版本开始,密钥库类型默认为PKS12

1-删除上载密钥库。jks公司

a-  /android/app/upload-keystore.jks
b- /home/user/upload-keystore.jks

2-重新生成文件:

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

3-复制文件/主页/用户/上载密钥库。jks到android/应用程序/

4-颤振清洁

5-颤振构建appbundle

景信瑞
2023-03-14

事实证明,我使用的是与我的应用程序用于构建应用程序不同的Java版本来生成签名密钥。您可以通过运行flatter doctor-v查看Java二进制文件的位置,并将其与运行“which Java”时进行比较来检查这一点。

解决方案是运行以颤振医生输出中找到的Java bin位置为前缀的keygen命令,如下所示:

/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/pc-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias pckey
金秦斩
2023-03-14

我遇到了同样的错误,我尝试了这个命令

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

具有额外属性

-storetype JKS

它帮助我解决问题并成功创建捆绑包。

-storetype JKS标记仅适用于Java9或更高版本。从Java9版本开始,密钥库类型默认为PKS12。

 类似资料:
  • 我有java 1.4版本的代码,我们有一个新的要求,比如从另一个webservice响应中解密密码,因此必须使用AES 256解密,得到以下异常: 我试图将jce\U policy\u 1-4版本JAR复制到java home security文件夹中,但仍遇到上述异常 Java 1.4中是否有不更改为1.5的解决方案,因为运行jboss server 3.2.3版将不支持Java 1.5。

  • 注意:使用-Xlint重新编译:详细信息请参阅弃用。D8:程序类型已存在:android。支持v4.os。ResultReceiver$MyResultReceiver 失败:构建失败,但有例外。 > 错误:任务执行失败:应用程序:transformDexArchiveWithExternalLibsDexMergerForDebug”。 通用域名格式。Android建设者德兴。DexArchiv

  • flutter似乎在空安全检查和非空安全检查之间切换,导致了几十个问题。 空错误检查返回???

  • 为什么我会出现以下错误?突然,它开始出现这个错误。 失败:生成失败,出现异常。 > 其中:脚本'C:\src\flutter\package\flutter_tools\gradle\flutter.gradle'行:1070 错误:任务:app:compileFlutterBuildDebug的执行失败。 处理“命令”C:\src\flatter\bin\flatter。bat“”以非零退出值1

  • 我正在构建一个聊天应用程序flutter页面,我的Textfield/Send按钮行不断消失,我得到以下错误... 'package:flutter/src/rendering/box.dart':断言失败:第1446行pos 12:'havs size':RenderBox未布局:renderpointerlistener#da9fd needs-layout needs-paint 该页面构建

  • 问题内容: 看下面的java行: 如果将其放在一个简单的测试程序中,则它可以在服务器上正常运行。但是,如果我在容器中使用此行,则会得到 两种情况下都使用相同的JDK安装。 搜寻了一下之后,我通过做两件事设法使其工作: 从复制到容器的lib目录。 在我的代码中添加以下行: 具体来说,这是我在Apache James 邮箱中发生的,但是我很确定这与JVM选项有关。这是它使用的启动脚本。 尽管我最终使它