首页 > 解决方案 > NoSuchMethodError,函数名已更改

问题描述

java.lang.NoSuchMethodError: 'java.math.BigInteger org.kethereum.model.ECKeyPair.getPrivateKey-V6oYYD4()'

我在我的项目中使用了一个 KEthereum 库,当调用一个方法.getPrivateKey()时,这个奇怪的随机字符串-V6oYYD4添加到了原始函数中。我以前没有遇到过这种类型的问题。

原始函数名称:.getPrivateKey()

修改函数名:.getPrivateKey-V6oYYD4()

函数从单元测试调用。我正在使用科特林。

执行代码行是

val seed: org.kethereum.bip32.model.Seed = MnemonicWords(VALID_MNEMONIC_15).toSeed()
val actualPrivateKey: String = seed.toKey("m/").keyPair.privateKey.key.toString()

编辑:解决了!问题出在其他地方。我查看了库的测试文件,我意识到我必须先序列化 ExtendedKey。所以我这样做了,我的代码如下所示:

val seed: org.kethereum.bip32.model.Seed = MnemonicWords(VALID_MNEMONIC_15).toSeed()
val derivedKey = seed.toKey("m/")
assertThat(derivedKey.serialize()).isEqualTo(XPRV_OF_MNEMONIC_15)

现在一切正常。

最后的额外字符串可能来自已编译的 JVM 代码。

标签: kotlinethereumnosuchmethoderror

解决方案


推荐阅读