Gradle 对包进行签名的时候提示错误 00B5050F

具体的错误提示信息如下:

The key ID must be in a valid form (eg 00B5050F or 0x00B5050F), given value: 1E5CBEF8B550FB7D

 

 

问题和解决

这个问题比较蠢。与 Gradle 的插件 id ‘signing’ 有关。

可以反问源代码:https://github.com/gradle/gradle/blob/124712713a77a6813e112ae1b68f248deca6a816/subprojects/security/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpKeyId.java

在这个源代码中有一个对 Key 校验的方法:

private static String normaliseKeyId(String keyId) {
        String keyIdUpped = keyId.toUpperCase();
        switch (keyIdUpped.length()) {
            case 10:
                if (!keyIdUpped.startsWith("0X")) {
                    throw new IllegalArgumentException("10 character key IDs must start with 0x (given value: " + keyId + ")");
                }
                return keyIdUpped.substring(2);
            case 8:
                if (keyId.startsWith("0X")) {
                    throw new IllegalArgumentException("8 character key IDs must not start with 0x (given value: " + keyId + ")");
                }
                return keyIdUpped;
            default:
                throw new IllegalStateException("The key ID must be in a valid form (eg 00B5050F or 0x00B5050F), given value: " + keyId);
        }
    }

 

 

从这个方法中,你可以看到如果你的 Key ID 是 10 位的,你需要使用 0X 开头。

如果你的 key ID 超过 10 位就直接报错了。

在 Kleopatra 中,默认给了 16位的 Key Id,如果你直接拷贝的话,只会报错。

 

 

因此,根据上面的问题:

signing.keyId=

参数应该只能保留 8 位置。

因此

signing.keyId=

的配置应该为:

signing.keyId=B550FB7D

通过上面的调整后再进行编译,你应该不会遇到上面错误问题。

https://www.ossez.com/t/gradle-00b5050f/789

posted @   huyuchengus  阅读(134)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2018-12-26 Count Up Down(上下计数)
2018-12-26 Robot Movement(机器人移动)
点击右上角即可分享
微信分享提示