Java Google应用程序引擎上的NoSuchMethod错误

Java Google应用程序引擎上的NoSuchMethod错误,java,google-app-engine,firebase,google-cloud-endpoints,firebase-admin,Java,Google App Engine,Firebase,Google Cloud Endpoints,Firebase Admin,我的Google应用程序引擎服务器运行: Firebase管理SDK 谷歌云端点v2 最近更新到Endpoints v2后(不确定是否相关),我在服务器上遇到此错误,而我的移动应用程序: com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backend method java.lang.NoSuchMethodError: com.google.commo

我的Google应用程序引擎服务器运行:

  • Firebase管理SDK
  • 谷歌云端点v2
最近更新到Endpoints v2后(不确定是否相关),我在服务器上遇到此错误,而我的移动应用程序:

com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backend method
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V
at com.google.firebase.FirebaseApp.checkNotDeleted(FirebaseApp.java:314)
at com.google.firebase.FirebaseApp.getOptions(FirebaseApp.java:260)
at com.google.firebase.auth.FirebaseAuth.<init>(FirebaseAuth.java:74)
at com.google.firebase.auth.FirebaseAuth.<init>(FirebaseAuth.java:61)
at com.google.firebase.auth.FirebaseAuth.<init>(FirebaseAuth.java:52)
at com.google.firebase.auth.FirebaseAuth$FirebaseAuthService.<init>(FirebaseAuth.java:316)
at com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:98)
at com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:85)
at com.project.apis.UserAPI.verifyUserIDToken(MyAPI.java:100)
com.google.api.server.spi.SystemService invokeServiceMethod:调用后端方法时发生异常
java.lang.NoSuchMethodError:com.google.common.base.premissions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V
位于com.google.firebase.FirebaseApp.checkNotDeleted(FirebaseApp.java:314)
位于com.google.firebase.FirebaseApp.getOptions(FirebaseApp.java:260)
在com.google.firebase.auth.FirebaseAuth.(FirebaseAuth.java:74)
在com.google.firebase.auth.FirebaseAuth.(FirebaseAuth.java:61)
在com.google.firebase.auth.FirebaseAuth.(FirebaseAuth.java:52)
位于com.google.firebase.auth.FirebaseAuth$FirebaseAuthService。(FirebaseAuth.java:316)
位于com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:98)
位于com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:85)
在com.project.api.UserAPI.verifyUserIDToken(MyAPI.java:100)上
有人能提供建议吗?其他报告建议更新我的
pom.xml
中的番石榴依赖项,但我甚至没有使用番石榴:


当类路径中有两个不兼容的番石榴版本时,就会发生这种情况。Firebase使用一个版本(v20.0),Google应用程序引擎库使用一个旧版本(我相信是v18.0)。您可以使用
mvn dependency:tree
命令检查依赖关系树,然后向旧版本添加排除规则


依赖关系树只列出番石榴一次(com.google.Guava:Guava:jar:19.0:compile)。这可能是另一个问题吗?Firebase需要20.0。尝试将其添加到类路径中,然后删除19.0。它仍然以某种方式绑定到19.0版本。您可以发布依赖关系树吗?还要确保
target/
目录中的web存档(部署到App Engine的工件)在
web-INF/lib中只有guava 20.0。Maven因缓存这些东西而臭名昭著,您可能希望运行
mvn clean
来销毁旧的工件,并使用guava 20.0重建项目。