华为SDK hwid未通过项目单元测试



环境:

  • 安卓工作室
  • 硬件代码:5.2.0.300
  • CI

问题描述:

在我们集成了最新的华为SDK后,我们的CI失败了,因为Android测试没有通过
我们深入研究了一下报告,它在堆栈跟踪中给了我们这个错误:

org.bouncycastle.pqc.crypto.qtesla.QTeslaKeyEncodingTests > testDecodeEncodePublicKeyQT3P[V1836A - 10] FAILED 
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
org.bouncycastle.pqc.crypto.qtesla.QTeslaKeyEncodingTests > testDecodeEncodePrivateKeyQT3P[V1836A - 10] FAILED 
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)

这个错误是由CCD_ 1引入的。
因此,毫无疑问,如果您集成hwid:5.2.0.300,它将与您的CI/CD一起通过单元测试

问题原因:

我们深入了解后,华为SDK引入了org.bouncycastle:bcpkix-jdk15on:1.64作为依赖,在这个版本中,他们错误地将单元测试包含到了自己的库中,并在1.65中进行了修复。
检查https://github.com/bcgit/bc-java/issues/661
因此,我恳请华为根据您的需要将org.bouncycastle:bcpkix-jdk15on升级为1.65或更高版本如果你有代码库,这是一项工作。

破解解决方案:

为了使我们的CI按预期工作,现在我们正在这样做,如果其他人有同样的问题:

dependencies {
// ......... something else what we need 
huaweiApi ('com.huawei.hms:hwid:5.2.0.300') {
// Huawei include org.bouncycastle 1.64 version
// In this version, the source code include unit test file in library, which will cause our CI Fail.
exclude group: 'org.bouncycastle', module: "bcprov-jdk15on"
}
huaweiApi 'org.bouncycastle:bcpkix-jdk15on:1.65'
}

经团队确认,最新的Account SDK版本已更新至5.3.0.301。在这个版本中,引入的org.bouncycastle:bcpkix-jdk15on被删除。您还可以将最新的Account SDK版本集成到您的项目中。

有关5.3.0.300新功能的更多详细信息,请参阅https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/version-change-history-0000001050048874?ha_source=hms1

最新更新