web-dev-qa-db-fra.com

NoSuchMethodError: com.google.common.base.Preconditions.checkArgument (ZLjava / lang / String; J) V

Quelle dépendance Google Maven pourrait corriger cette erreur:

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)

Code:

Blob blob = storage.get(blobId);
if(blob.exists()) {
    return true;
}
17
xybrek

Votre version de Google goyave est soit trop ancienne (<20.0) ou inadaptée (plusieurs versions de pots). Assurez-vous que vous n'avez pas plusieurs versions dans votre arborescence de dépendances.

Utilisation

mvn dependency:tree | less

pour rechercher les versions de goyave.

27
Laurent Perez

Veuillez ajouter les dépendances suivantes au POM de votre projet:

<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>
9
Avinash Pande

J'ai eu le même problème dans mon application Java/Kotlin. Lorsque l'application a été exécutée via IntelliJ, il n'y avait aucun problème. Cependant, lorsque le . Jar a été exécuté, le message d'erreur ci-dessus a été lancé.

Je n'ai pas pu trouver un élément d'action directe à prendre avec le problème de goyave défini par @Laurent Perez ci-dessus, j'ai donc fait ce qui suit qui a résolu le problème avec mon . Jar fichier en cours d'exécution:

  • Supprimé . Jar Configurations et fichier IntelliJ d'IntelliJ. Ensuite, ré-ajouté le . Jar suivant Étape 3 de ce guide de déploiement.

Autres actions à essayer si ce qui précède ne fonctionne pas:

  • Projet de reconstruction.
  • Invalider le cache IntelliJ et redémarrer.
  • Redémarrer l'ordinateur.
2
Adam Hurwitz

Dans mon cas, il m'est arrivé d'inclure les deux

    <dependency>
      <groupId>com.google.collections</groupId>
      <artifactId>google-collections</artifactId>
      <version>1.0</version>
    </dependency>

et

    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>28.0-jre</version>
    </dependency>

En fait, je ne peux pas utiliser ces deux bibliothèques. La suppression de google-collections a résolu le problème pour moi.

1
sabbir

Essayez d'insérer une dépendance contenant une version plus récente de goyave en haut de vos dépendances dans votre pom.xml contenant votre projet.

Par exemple.

  <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>24.1.1-jre</version>
  </dependency>
0
Gapmeister66