NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava / lang / String; J)V
Google Maven依赖项可以解决此错误:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;J)V at com.google.cloud.storage.spi.v1.HttpStorageRpc.read(HttpStorageRpc.java:487) at com.google.cloud.storage.BlobReadChannel$1.call(BlobReadChannel.java:127) at com.google.cloud.storage.BlobReadChannel$1.call(BlobReadChannel.java:124) at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:94) at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:54) at com.google.cloud.storage.BlobReadChannel.read(BlobReadChannel.java:124) at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65) at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109) at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) at java.io.InputStream.read(InputStream.java:101)
码:
Blob blob = storage.get(blobId); if(blob.exists()) { return true; }
您的Google番石榴版本太旧(<20.0)或不匹配(多个罐子版本)。 确保依赖关系树中没有多个版本。
使用
mvn dependency:tree | less
寻找番石榴版本。
请将以下依赖项添加到项目的POM中:
com.google.guava guava 23.6-jre org.apache.httpcomponents httpcore 4.4.8
我在Java / Kotlin应用程序中遇到了同样的问题。 当应用程序通过IntelliJ运行时没有问题。 但是,当运行.Jar时,会抛出上面的错误消息。
我找不到上面由@Laurent Perez定义的Guava问题的直接操作项,所以我做了以下操作来解决运行我的.Jar文件的问题:
- 从IntelliJ中删除了.Jar IntelliJ配置和文件。 然后从本部署指南中重新添加.Jar,然后执行步骤3 。
如果以上操作无效,则尝试其他操作:
- 重建项目。
- 使IntelliJ缓存无效并重新启动。
- 重启电脑。