Я пытаюсь настроить интерфейс Java на Google Drive API, следуя краткому руководству, но каждый раз, когда я запускаю свою программу, выдается «NoClassDefFoundError: com / google / common / base / Preconditions». Это также произошло, когда я попытался реализовать Google CustomSearchEngine API.
Я ссылался на все классы API с исходными текстами и без них, а также с приложенными javadocs. Я также пытался использовать 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
Кажется, он ведет себя так, как будто класс отсутствует, но я ссылался на все библиотеки API из API Google Диска в конфигурации сборки. Я даже пытался получить отсутствующий класс из findjar dot com с небольшим дополнительным прогрессом.