Исключение API Cloud Vision в потоке "main" java .lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument - PullRequest
0 голосов
/ 04 апреля 2020

Я выполнил все шаги в https://cloud.google.com/vision/docs/ocr и при выполнении кода получаю следующее исключение.

Full Stacktrace:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V
    at io.grpc.Metadata$Key.validateName(Metadata.java:742)
    at io.grpc.Metadata$Key.<init>(Metadata.java:750)
    at io.grpc.Metadata$Key.<init>(Metadata.java:668)
    at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:959)
    at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:954)
    at io.grpc.Metadata$Key.of(Metadata.java:705)
    at io.grpc.Metadata$Key.of(Metadata.java:701)
    at com.google.api.gax.grpc.GrpcHeaderInterceptor.<init>(GrpcHeaderInterceptor.java:60)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:228)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1500(InstantiatingGrpcChannelProvider.java:71)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:202)
    at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:209)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:192)
    at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:155)
    at com.google.cloud.vision.v1.stub.GrpcImageAnnotatorStub.create(GrpcImageAnnotatorStub.java:117)
    at com.google.cloud.vision.v1.stub.ImageAnnotatorStubSettings.createStub(ImageAnnotatorStubSettings.java:156)
    at com.google.cloud.vision.v1.ImageAnnotatorClient.<init>(ImageAnnotatorClient.java:136)
    at com.google.cloud.vision.v1.ImageAnnotatorClient.create(ImageAnnotatorClient.java:117)
    at com.google.cloud.vision.v1.ImageAnnotatorClient.create(ImageAnnotatorClient.java:108)

Я пытался использовать версии Guava (22.0 и 23.6) и HttpCore (5.0 и 4.4.8), отличные от тех, которые уже используются в библиотеках Google Cloud Platform (28.2 и 4.4.12), но не повезло.

Я использую Eclipse и использовал Eclipse и выполнил следующие действия: https://cloud.google.com/eclipse/docs/libraries

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Эта трассировка стека указывает, что ваш classpath содержит старую версию Guava, или клиента OCR, или обоих. Без полного проекта для проверки я не могу точно сказать, как вы получаете эту старую версию - это зависит от того, как вы настроили проект - но это определенно то, что происходит.

0 голосов
/ 08 апреля 2020

Хорошо, я сделал этот прогон, клонируя весь проект java vision от GitHub: https://github.com/googleapis/java-vision.

Однако мне все равно пришлось добавить несколько дополнительных jar-файлов, так как существовали ошибки пути.

0 голосов
/ 04 апреля 2020

Как вы заметили, ошибки такого рода обычно указывают на несоответствие версий. Вы не сказали, используете ли вы Maven или собственный проект Cloud Tools for Eclipse. Я бы порекомендовал вам использовать установку Maven, чтобы вы могли воспользоваться спецификацией облачных библиотек . Это должно устранить эти несоответствия версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...