首页 > 解决方案 > 线程“主”java.lang.NoSuchMethodError 中的 Cloud Vision API 异常:com.google.common.base.Preconditions.checkArgument

问题描述

我遵循了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

标签: javaeclipsegoogle-cloud-platformgoogle-apis-explorervision-api

解决方案


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


推荐阅读