2017-09-22 3 views
0

Je semble avoir un problème qui ne s'applique qu'à un seul utilisateur d'un plugin minecraft.NoSuchMethodError: com.google.common.cache.CacheBuilder.maximumSize (J)

[15:54:14 ERROR]: Error occurred while enabling <Plugin> v1.0.8 (Is it up to date?) java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.maximumSize(J)Lcom/google/common/cache/CacheBuilder;

Y at-il des raisons pour lesquelles cela se passe ou si je peux venir sur elle une certaine façon?

Mon code:

private LoadingCache<String, String> profileCache = CacheBuilder.newBuilder(). 
     maximumSize(500). 
     expireAfterWrite(4, TimeUnit.HOURS). 
     build(new CacheLoader<String, String>() { 
      public String load(String name) { 
       try { 
        return getProfileJson(name); 
       } catch (IOException e) { 
        Bukkit.getLogger().info("Error, " + e.getLocalizedMessage() + "."); 
       } 
       return null; 
      } 
     }); 

Répondre

0

java.lang.NoSuchMethodError est jeté à l'exécution, car la machine virtuelle Java ne trouve pas la méthode dans la classe référencée. Cela se produit généralement parce que vous utilisez différentes versions d'une bibliothèque tierce pour compiler et exécuter l'application.

Vérifiez la version de la bibliothèque utilisée pour la compilation et la version utilisée pour l'exécution du code et assurez-vous qu'elles correspondent ou sont au moins compatibles.

0

Vous devez inclure les bibliothèques dans le fichier exporté. Par défaut, ils ne sont pas inclus dans le Jar exporté car l'EDI suppose qu'ils sont présents lors de l'exécution, ce qui n'est pas le cas.

Voir here pour Gradle et here pour Maven.