据我了解,bitcoinj库包含用于比特币核心功能的包装器-NativeSecp256k1。我正在尝试从此包装器中调用方法之一:

NativeSecp256k1.secKeyVerify(byteArrayOf(...))

但是我崩溃了:



看起来bitcoinj库包含包装器,但不包含此包装器中使用的本机库。如何解决这个问题?

最佳答案

Bitcoinj使用JNI加载secp256k1曲线操作的C库。如果该库文件已正确导入...并且由于您尝试直接访问它,则可能缺少System.loadLibrary('secp256k1')调用

检查这里:https://github.com/bitcoinj/bitcoinj/blob/2ec193f8479425c3a66bebf5f2d3493e39e88f7c/core/src/main/java/org/bitcoin/Secp256k1Context.java

要为lib构建编译源,它在NativeSecp256k1类的注释块中在此处进行描述:https://github.com/bitcoinj/bitcoinj/blob/2ec193f8479425c3a66bebf5f2d3493e39e88f7c/core/src/main/java/org/bitcoin/NativeSecp256k1.java#L34

09-25 16:09