2017-09-22 247 views
0

我似乎遇到了一個問題,它只適用於我的一個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;

是否有任何理由,爲什麼發生這種情況,或者如果我可以通過它來某種方式?

我的代碼:

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

回答

0

java.lang.NoSuchMethodError在運行時被拋出,因爲JVM中未找到引用的類中的方法。這通常是因爲您正在使用不同版本的第三方庫來編譯和運行應用程序。

檢查用於編譯的庫的版本以及用於運行代碼的版本,並確保它們匹配或至少兼容。

0

您需要將庫包含到導出的jar中。默認情況下,它們不包含在導出的Jar中,因爲IDE假定它們在運行時存在,但它們不是。

請參閱here爲Gradle和here爲Maven。