Не работает код быстрого запуска Cloud Vision API: java .lang.NoSuchMethodError - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь запустить код здесь . Однако он возвращает java.lang.NoSuchMethodError: io.grpc.ManagedChannelBuilder.disableServiceConfigLookUp()Lio/grpc/ManagedChannelBuilder;. Я определил, что ошибка вызвана строкой try (ImageAnnotatorClient vision = ImageAnnotatorClient.create()).

Я искал в Интернете, но не смог найти никакой информации по этому поводу, кроме это потенциально проблема с версией. Однако я использую зависимости, указанные в руководстве по быстрому запуску, поэтому я не знаю, как решить эту проблему.

1 Ответ

1 голос
/ 24 июля 2020

' NoSuchMethodError ' - это общая c не-Google Java ошибка времени выполнения, вызванная конфликтом зависимостей maven. Это, в частности, конфликт зависимостей Java относительно библиотеки ' io.grp c', как указано в ошибке.

Как объяснено в документации Maven, вы можете использовать следующую команду, чтобы узнать, какая версия зависимости « io.grp c» установлена ​​в вашей локальной среде , которая вызывает проблему:

mvn dependency:tree -Dverbose -Dincludes=io.grpc 

Как только вы определили конфликтующую Java зависимость после выполнения предыдущей команды, вы можете попытаться разрешить конфликт, выполнив следующие c шаги:

  1. Попробуйте чистую установку из maven: mvn clean install и запустите файл.
  2. Вы можете обновить все версии до последней версии: mvn versions:use-latest-releases и запустить файл.
  3. Следуйте дополнительным рекомендациям, указанным в этом аналогичное сообщение о переполнении стека , в котором рассматривается проблема «NoSuchMethodError».

В качестве обходного пути я протестировал код быстрого запуска в Google Cloud Shell , и он запустился недостаток essly (поскольку у Cloud Shell есть предустановленные пакеты, которые обновлены и сбрасываются при закрытии ). Таким образом, в целях тестирования вы можете запустить код в Cloud Shell , а не в своей локальной среде.

...