2017-09-22 1 views
0

Ich habe ein Problem, das nur für einen Mitbenutzer eines Minecraft-Plugins von mir gilt.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;

Gibt es einen Grund, warum dies geschieht, oder wenn ich über sie irgendwie kommen kann?

Mein 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; 
      } 
     }); 

Antwort

0

java.lang.NoSuchMethodError wird zur Laufzeit geworfen, weil die JVM nicht das Verfahren in der referenzierten Klasse finden. Dies geschieht normalerweise, weil Sie verschiedene Versionen einer Drittanbieterbibliothek zum Kompilieren und Ausführen der Anwendung verwenden.

Überprüfen Sie die Version der zum Kompilieren verwendeten Bibliothek und die für die Ausführung des Codes verwendete Version und stellen Sie sicher, dass sie übereinstimmen oder zumindest kompatibel sind.

0

Sie müssen die Bibliotheken in das exportierte Jar einfügen. Standardmäßig sind sie nicht im exportierten Jar enthalten, da die IDE annimmt, dass sie zur Laufzeit vorhanden sind, was nicht der Fall ist.

Siehe here für Gradle und here für Maven.

Verwandte Themen