我如何获得com.google.common.base.base.java gdrive api的班级



我试图通过遵循QuickStart教程来获得与Google Drive API一起使用的Java界面,但是每次我运行程序时都会投掷" NoclassDeffoundError:com/commo/common/common/base(/先决条件。"当我尝试实施Google customearchengine API时,这也发生了。

我已经引用了所有带有和没有来源和Javadocs的API类。我还尝试使用Findjar Dot com尝试获得几乎没有成功的先决条件。

这是我使用的代码的行,该码是错误引用的。我还包括了在引用代码上方的注释中定义错误行中使用的变量的行。

第61行:

/*
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
InputStream in = new FileInputStream(clientSecretFilePath);
*/
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

第88行:

/*
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
*/
Credential credential = getCredentials(HTTP_TRANSPORT);

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
    at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
    at com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:80)
    at com.google.api.client.json.JsonFactory.fromReader(JsonFactory.java:236)
    at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.load(GoogleClientSecrets.java:192)
    at drive.GDrive.getCredentials(GDrive.java:61)
    at drive.GDrive.main(GDrive.java:88)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

似乎表现得好像是丢失的类,但是我已经引用了Google Drive API中的所有API库。我什至尝试从Findjar Dot Com那里获得缺失的课程,但进展几乎没有进展。

删除现有依赖项并从下面添加依赖项:

google-api-client-1.23.0

google-oauth-client-jetty-1.23.0

google-api-services-drive-v3-rev110-1.23.0

快乐编码: - (

我在为Android实施Payu SDK时遇到了相同的问题。解决方案是为 android 添加guava依赖项,而不是 JRE

  implementation("com.google.guava:guava:28.1-android")

有关更多信息,请参阅存储库或检查Android Guava Wiki,最好是前提条件

我还建议仔细研究Guava的Proguard规则,以将您在项目中不使用的所有内容排除在构建中。

我创建了一个遵循Quickstart教程的小项目,没有任何问题。

https://github.com/lssilva/googledriveapi/

它对我来说很好,我没有提交凭据,但是如果您替换为您的凭据,则应如文档所述工作。

git clone https://github.com/lssilva/googleDriveApi.git
gradle run

如果接受的答案对任何人都不起作用。

也可以在:

上获得前提条件
https://mvnrepository.com/artifact/com.google.api.client/google-api-client-repackaged-com-google-common-base
implementation("com.google.api.client:google-api-client-repackaged-com-google-common-base:1.2.3-alpha")

它似乎对我有效。

相关内容

最新更新