java - 线程“主”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
解决方案
该堆栈跟踪表明您的类路径包含旧版本的 Guava,或 OCR 客户端,或两者兼而有之。如果没有要检查的完整项目,我无法确切说明您是如何获得那个旧版本的——这取决于你如何配置项目——但这绝对是正在发生的事情。
推荐阅读
- centos - mount: unknown filesystem type 'vmhgsf'
- vb6 - 动态添加控件的并排(regfree)问题
- python - 获取对象路径中的键名
- php - Laravel Job 中的 URL 未正确编码
- git - 从撰写文件构建容器在搬运工中失败
- javascript - 如何在jQuery函数之前添加插值字符串
- python - Python:根据if语句条件填充新的df列
- python - Tesseract returns sometimes an empty string if an unknown character occurs
- sockets - 最小的 TCP 客户端-服务器:accept() 从不接收连接?
- bitmask - Use of (a | (a+1) ) in programming