为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取 Java gDrive api 类 com.google.common.base.

如何获取 Java gDrive api 类 com.google.common.base.

烙印99 2022-12-15 11:27:41
我正在尝试通过遵循快速入门教程获得与 Google Drive API 一起使用的 Java 接口,但每次我运行我的程序时它都会抛出“NoClassDefFoundError:com/google/common/base/Preconditions”。当我尝试实施 Google CustomSearchEngine API 时,也会发生这种情况。我已经引用了所有带有和不带有源代码和 javadoc 的 API 类。我也曾尝试使用 findJAR .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 获取缺少的类,但几乎没有取得额外进展。
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

删除现有依赖项并从以下链接添加依赖项:

google-api-client-1.23.0

google-oauth-client-jetty-1.23.0

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

快乐编码:-)


查看完整回答
反对 回复 2022-12-15
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

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

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

有关它的更多信息,请参阅存储库或查看Android guava wiki,最好是先决条件

我还建议查看Guava 的 Proguard 规则,以从构建中排除项目中不使用的所有内容。


查看完整回答
反对 回复 2022-12-15
?
慕后森

TA贡献1802条经验 获得超5个赞

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

https://github.com/lssilva/googleDriveApi/

它对我来说工作得很好,我没有提交凭据,但如果你用你的凭据替换,它应该按照文档中的描述工作。

git clone  
gitgradle run


查看完整回答
反对 回复 2022-12-15
  • 3 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信