GAE + Cloud Storage + Guava = Appspot 上的 NoSuchMethodError?
GAE + Cloud Storage + Guava = NoSuchMethodError on appspot?
将我的 GAE 应用程序部署到 appspot 后,我不断从 API 请求中收到以下错误:NoSuchMethodError: com.google.common.hash.Hashing.crc32c()Lcom/google/common/hash/HashFunction;
我在本地 运行 时没有收到任何错误。调用时抛出错误:com.google.cloud.storage.StorageOptions.getDefaultInstance().getService().create
我已经尝试了 Guava 版本 18-20 并且 运行 Java 7 具有以下依赖项:
dependencies {
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.53'
compile 'com.google.appengine:appengine-endpoints:1.9.53'
compile 'com.google.appengine:appengine-endpoints-deps:1.9.53'
compile 'com.google.appengine.tools:appengine-gcs-client:0.6'
compile 'com.google.api-client:google-api-client:1.22.0'
compile 'com.google.guava:guava:20.0'
compile 'com.google.cloud:google-cloud-storage:1.0.1'
compile 'com.googlecode.objectify:objectify:5.1.1'
compile 'javax.servlet:servlet-api:2.5'
compile 'org.jsoup:jsoup:1.10.2'
}
感谢您的帮助!!
我终于想通了...
我使用的是 Google 云存储库 (com.google.appengine.tools:appengine-gcs-client:0.6),它使用了 guava-jdk5 库,这与我使用的 Guava 版本冲突使用; Guava 的 jdk5 版本中不存在 HashFunction。
解决方案是从 Google 云存储库导入中排除 guava-jdk5。我的 .gradle 文件的相关部分如下所示:
compile 'com.google.guava:guava:19.0'
compile ('com.google.appengine.tools:appengine-gcs-client:0.6') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
对于其他人,冲突可能是由不同的库造成的,因此请务必检查您的库的依赖关系,看看是否与您尝试使用的 Guava 版本有冲突。
将我的 GAE 应用程序部署到 appspot 后,我不断从 API 请求中收到以下错误:NoSuchMethodError: com.google.common.hash.Hashing.crc32c()Lcom/google/common/hash/HashFunction;
我在本地 运行 时没有收到任何错误。调用时抛出错误:com.google.cloud.storage.StorageOptions.getDefaultInstance().getService().create
我已经尝试了 Guava 版本 18-20 并且 运行 Java 7 具有以下依赖项:
dependencies {
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.53'
compile 'com.google.appengine:appengine-endpoints:1.9.53'
compile 'com.google.appengine:appengine-endpoints-deps:1.9.53'
compile 'com.google.appengine.tools:appengine-gcs-client:0.6'
compile 'com.google.api-client:google-api-client:1.22.0'
compile 'com.google.guava:guava:20.0'
compile 'com.google.cloud:google-cloud-storage:1.0.1'
compile 'com.googlecode.objectify:objectify:5.1.1'
compile 'javax.servlet:servlet-api:2.5'
compile 'org.jsoup:jsoup:1.10.2'
}
感谢您的帮助!!
我终于想通了...
我使用的是 Google 云存储库 (com.google.appengine.tools:appengine-gcs-client:0.6),它使用了 guava-jdk5 库,这与我使用的 Guava 版本冲突使用; Guava 的 jdk5 版本中不存在 HashFunction。
解决方案是从 Google 云存储库导入中排除 guava-jdk5。我的 .gradle 文件的相关部分如下所示:
compile 'com.google.guava:guava:19.0'
compile ('com.google.appengine.tools:appengine-gcs-client:0.6') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
对于其他人,冲突可能是由不同的库造成的,因此请务必检查您的库的依赖关系,看看是否与您尝试使用的 Guava 版本有冲突。