0

我遵循了https://cloud.google.com/vision/docs/ocr中的所有步骤,并且在执行代码时出现以下异常。

完整的堆栈跟踪:

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 Libraries(28.2 和 4.4.12)上使用的版本,但没有运气。

我正在使用 Eclipse 并使用 Eclipse 并按照以下步骤操作:https ://cloud.google.com/eclipse/docs/libraries

4

3 回答 3

0

该堆栈跟踪表明您的类路径包含旧版本的 Guava,或 OCR 客户端,或两者兼而有之。如果没有要检查的完整项目,我无法确切说明您是如何获得那个旧版本的——这取决于你如何配置项目——但这绝对是正在发生的事情。

于 2020-04-07T20:54:22.683 回答
0

好的,我从 GitHub 克隆了整个 java vision 项目:https ://github.com/googleapis/java-vision 。

但是,由于存在路径错误,我仍然不得不添加一些额外的 jar。

于 2020-04-08T14:34:41.423 回答
0

如您所述,此类错误通常表示版本不匹配。您还没有说您使用的是 Maven 还是 Cloud Tools for Eclipse 原生项目。我建议您使用 Maven 设置,以便您可以利用Cloud Libraries BOM。这应该消除这些版本不匹配。

于 2020-04-04T17:09:37.413 回答