Основной вопрос / TLDR: я получаю NoSuchMethodError для метода на несколько уровней ниже в моем стеке вызовов.Но вызов метода в моей собственной главной функции в том же проекте не дает ошибок.Как это может случиться?Какими методами я мог бы попытаться сузить источник такой ошибки?
Другие факты: Документация показывает, что метод существует.Источник, из которого возникла ошибка, импортирует права и пытается вызвать метод.После распечатки ошибки в имени метода есть какая-то странная болтовня.Может ли это быть проблемой?
Специальная информация для моего случая:
Полная распечатка ошибки:
Exception in thread "main" java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
at it.unimi.dsi.sux4j.io.ChunkedHashStore.reset(ChunkedHashStore.java:526)
at it.unimi.dsi.sux4j.mph.GOVMinimalPerfectHashFunction.<init>(GOVMinimalPerfectHashFunction.java:335)
at it.unimi.dsi.sux4j.mph.GOVMinimalPerfectHashFunction$Builder.build(GOVMinimalPerfectHashFunction.java:270)
at org.boydwebb.familysearch.runners.examples.ManyGraphWriter.<init>(ManyGraphWriter.java:109)
at org.boydwebb.familysearch.runners.examples.ManyGraphWriter.main(ManyGraphWriter.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
at org.boydwebb.familysearch.runner.Runner.run(Runner.java:62)
at org.boydwebb.familysearch.runner.Runner.main(Runner.java:23)
Соответствующий источник: (https://raw.githubusercontent.com/vigna/Sux4J/master/src/it/unimi/dsi/sux4j/io/ChunkedHashStore.java)
Строки, которые я вставил в main, чтобы попытаться получить минимальный рабочий пример:
ByteBuffer buffer = ByteBuffer.allocateDirect(100);
buffer.clear();
Строки в моем исходном коде привели к ошибке:
import it.unimi.dsi.sux4j.mph.GOVMinimalPerfectHashFunction;
Long[] table = \*initialize here*\
TransformationStrategy<Long> transformationStrategy = TransformationStrategies.fixedLong();
GOVMinimalPerfectHashFunction.Builder<Long> builder = new GOVMinimalPerfectHashFunction.Builder<>();
builder.keys(Arrays.asList(table));
builder.transform(transformationStrategy);
builder.store(null);
builder.tempDir(null);
builder.signed(0);
toGiantIdx = builder.build();//ERROR HERE