Plus.Builder.build()抛出java.lang.NoSuchFieldError:MAJOR_VERSION

时间:2013-12-06 10:22:10

标签: java google-plus

使用gplus java quickstart中的lib每当我尝试使用以下代码创建加号服务的实例时,我会得到一个nosuchfielderror:

HttpTransport httpTransport = new UrlFetchTransport();
    JsonFactory jsonFactory = new JacksonFactory();
    GoogleCredential credential = new GoogleCredential.Builder()
            .setJsonFactory(jsonFactory)
            .setTransport(httpTransport)
            .setClientSecrets(CLIENT_ID, CLIENT_SECRET).build()
            .setRefreshToken(REFRESH_TOKEN);
    Plus service = new Plus.Builder(httpTransport, jsonFactory, credential)
            .setApplicationName(APPLICATION_NAME)
            .build();

线程中的异常" main" java.lang.NoSuchFieldError:MAJOR_VERSION     在com.google.api.services.plus.Plus。(Plus.java:48)     在com.google.api.services.plus.Plus $ Builder.build(Plus.java:2133)

1 个答案:

答案 0 :(得分:2)

问题在于你提到的快速入门包含了它的“libs'文件夹两个不同版本的API

  1. 用于快速入门(1.13.2-beta)
  2. 的原文
  3. 使用jetty以获得更好兼容性的版本(1.17.0-rc)
  4. 不幸的是,您的应用程序似乎更喜欢google-api-services-plus的1.17版本,而它使用1.13版本的google-api-client。在该版本中,有一个文件GoogleUtils.java没有MAJOR_VERSION字段。

    悬而未决的问题是:如何最好地解决这个问题。

    我尝试从libs文件夹中删除所有1.13.2-beta(和1.13.1-beta)库,并查看它带给您的距离。理想情况下,快速启动将由所有者修复。