我正在尝试使用 java api 实现谷歌分析。但我遇到了这个异常
java.lang.NoSuchMethodError: com.google.common.base.Joiner.on(C)Lcom/google/common/base/Joiner;
at com.google.api.client.auth.oauth2.AuthorizationCodeFlow$Builder.setScopes(AuthorizationCodeFlow.java:644)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.setScopes(GoogleAuthorizationCodeFlow.java:256)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.<init>(GoogleAuthorizationCodeFlow.java:225)
at com.stpl.pats.bl.event.general.HelloAnalyticsApiSample.authorize(HelloAnalyticsApiSample.java:71)
at com.stpl.pats.bl.event.general.HelloAnalyticsApiSample.initializeAnalytics(HelloAnalyticsApiSample.java:157)
at com.stpl.pats.bl.event.general.HelloAnalyticsApiSample.main(HelloAnalyticsApiSample.java:39)
请告诉我我的代码有什么问题...
最佳答案
显然,在运行时找到的版本没有 Joiner.on(char seperator)
返回 Joiner
,尽管 Guava 中的版本自发布以来一直拥有它。从 google-collections 导入,因此它看起来像是另一个 jar 中的代码的嵌入版本(因此您的代码中没有任何问题,只有依赖项中没有问题)。
我假设 HelloAnalyticsApiSample
是您的代码并且可以修改。在 main()
中第 39 行之前添加以下内容:
System.out.println(com.google.common.base.Joiner.class
.getProtectionDomain().getCodeSource().getLocation());
(或使用您选择的日志框架)。然后您应该获得包含有问题版本的 jar 的路径。
关于java - 谷歌分析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13838817/