Caused by: java.lang.UnsupportedClassVersionError: com/google/common/annotations/VisibleForTesting : Unsupported major.minor version 52.0 (unable to load class com.google.common.annotations.VisibleForTesting)突然,没有任何与gradle或java /jre版本相关的更改,我在构建服务器(ec2)上得到了这个运行时错误。如果我在我的本地电脑上运行它,我就不会得到它。
我已经确保java -version为我的构建服务器和本地计算机返回1.7.0_x。到今天为止很长一段时间里天气都很好。
发布于 2017-01-17 16:28:53
在度假归来后重新构建未经修改的应用程序时,也存在同样的问题。依赖树中的库现在依赖于Google库的最新版本,它需要Java1.8。
从异常中可以看到,com/google/common/annotations/VisibleForTesting会导致您的问题。注释类型VisibleForTesting是Google库的一部分。从几周以来,番石榴释放21.0就可以使用了。从发行说明上你可以读到..。
重要:番石榴21.0需要Java 8。
您可能没有更改应用程序的依赖树,但是对于Guava 21.0的间接依赖确实存在。在我的例子中,是com.googlecode.owasp-java-html-sanitizer依赖于番石榴21.0。下载JAR并查看依赖项配置(在我的示例中是maven),我发现需要一个>= 11.0版本。这将被解决为最新版本,因此21。IDE中的依赖级归档视图也得出了同样的结论。
同时,由于您已经将构建服务器升级到JRE 1.8,这个问题就没有了(在构建服务器上)。请注意:当您将应用程序推向生产时,您的服务器也将需要JRE 1.8。
https://stackoverflow.com/questions/41267952
复制相似问题