Ответ 1
Ваша версия Google guava слишком старая (<20.0) или несовпадающая (несколько версий jars). Убедитесь, что у вас нет нескольких версий в дереве зависимостей.
использование
mvn dependency:tree | less
искать версии guava.
Какая зависимость 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 guava слишком старая (<20.0) или несовпадающая (несколько версий jars). Убедитесь, что у вас нет нескольких версий в дереве зависимостей.
использование
mvn dependency:tree | less
искать версии guava.
Пожалуйста, добавьте следующие зависимости к вашему проекту. POM:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.6-jre</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.8</version>
</dependency>
У меня была такая же проблема в моем приложении Java/Kotlin. Когда приложение запускалось через IntelliJ, проблем не возникало. Однако при запуске.Jar вышло сообщение об ошибке выше.
Я не мог найти элемент прямого действия для решения проблемы с Guava, описанной выше @Laurent Perez, поэтому я сделал следующее, которое разрешило проблему с моим файлом .Jar:
Другие действия, чтобы попытаться, если выше не работает:
Попробуйте вставить зависимость, содержащую более новую версию guava, вверху ваших зависимостей в файле pom.xml, содержащем ваш проект.
Например
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.1.1-jre</version>
</dependency>
В моем случае я включил оба
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0</version>
</dependency>
а также
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.0-jre</version>
</dependency>
Оказывается, я не могу использовать обе эти библиотеки. Удаление google-коллекций устранило проблему для меня.