我正在嘗試通過遵循快速入門教程獲得與 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-oauth-client-jetty-1.23.0
google-api-services-drive-v3-rev110-1.23.0
快樂編碼:-)
白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
我在為 Android 實施 PayU SDK時遇到了同樣的問題。解決方案是為android添加 guava 依賴項,而不是jre:
implementation("com.google.guava:guava:28.1-android")有關它的更多信息,請參閱存儲庫或查看Android guava wiki,最好是先決條件
我還建議查看Guava 的 Proguard 規則,以從構建中排除項目中不使用的所有內容。
慕后森
TA貢獻1802條經驗 獲得超5個贊
我創建了一個遵循快速入門教程的小項目,沒有任何問題。
https://github.com/lssilva/googleDriveApi/
它對我來說工作得很好,我沒有提交憑據,但如果你用你的憑據替換,它應該按照文檔中的描述工作。
git clone gitgradle run
添加回答
舉報
0/150
提交
取消
